2013-09-22 58 views
1

我不知道我在做什么错。没有按预期调用didUpdateValueForCharacteristic。我需要发送一个相当长的字符串,所以我将它分割成5个字符的块,并以0.03s的间隔“更新”这些块。下面的代码:核心蓝牙特性不更新值

The view controller code.

它符合必要的协议,一切工作正常,但一个事实,即didUpdateValueForCharacteristic只被调用一次列表名称,并曾经为“START”块。

我该如何解决这个问题?

回答

1

您设置NSTTimer不重复:

[NSTimer scheduledTimerWithTimeInterval:1 target:self 
    selector:@selector(sendList) userInfo:nil repeats:NO]; 

这样,它运行后停止。将repeats更改为YES,发送将实际开始发生。使用更多日志记录来解决这些问题。 :)

注有你的代码太多其他一些问题:

  1. 你不应该在主线程上睡觉。管理员目前已初始化为使用主队列。
  2. 只要连接或正在连接,就不应该释放外设(在viewwillDisappear:中发布)
  3. 列表处理确实是“神秘”的。 Objective-C是一种美丽的,真正表达的语言,可以将它用于您自己的优势。 (我错过了Java中的命名参数)

如果遇到更多问题,请继续并在单独的问题中提出问题。

+0

令人惊叹。 “定时器”的做法完美。非常感谢!! – Macro206

+0

@ Macro206我很高兴这有帮助!继续做'核心蓝牙'这是未来的方式:) – allprog

+0

你只是想读取数据?你没有写任何数据?我有一些类似的问题,我正在写信息使用写入方法,并希望使用读取方法读取相同的数据,但我没有得到这种方法messgae.Could找不到任何解决方案。 –