核心蓝牙特性不更新值
Posted
技术标签:
【中文标题】核心蓝牙特性不更新值【英文标题】:Core Bluetooth characteristic not updating value 【发布时间】:2013-09-22 19:45:52 【问题描述】:我不知道我做错了什么。 didUpdateValueForCharacteristic
没有按预期调用。我需要发送一个相当长的字符串,所以我将它分成 5 个字符的块,并以 0.03 秒的间隔“更新”它们。代码如下:
The view controller code.
它符合必要的协议,一切正常,除了didUpdateValueForCharacteristic
只为列表名称调用一次,为“START”块调用一次。
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:您将 NSTTimer 设置为不重复:
[NSTimer scheduledTimerWithTimeInterval:1 target:self
selector:@selector(sendList) userInfo:nil repeats:NO];
这样它运行一次就停止。将repeats
更改为YES
,发送实际上将开始发生。使用更多日志记录来解决此类问题。 :)
请注意,您的代码也存在一些其他问题:
-
你不应该睡在主线程上。管理器当前已初始化为使用主队列。
只要外围设备已连接或正在连接,就不应释放它(
viewwillDisappear:
中的问题)
列表处理真的很“神秘”。 Objective-C 是一门美丽的、真正富有表现力的语言,你可以利用它来发挥自己的优势。 (我在 Java 中非常缺少命名参数)
如果您遇到更多问题,请继续提出单独的问题。
【讨论】:
太棒了。这样做的“计时器”方式非常有效。非常感谢!! @Macro206 我很高兴这有帮助!继续做core-bluetooth
这是未来的方式:)
您只是想读取数据?你还没有写任何数据?我遇到了一些类似的问题,我正在使用 write 方法写消息,并想使用 read 方法读取相同的数据,但我没有在这种方法中得到消息。找不到任何解决方案。以上是关于核心蓝牙特性不更新值的主要内容,如果未能解决你的问题,请参考以下文章