ios - 并发委托(delegate)方法

标签 ios core-bluetooth

我目前正在使用 Corebluetooth,我的手机充当核心,还有一个单独的外围设备。

我使用 didUpdateValueFor 委托(delegate)方法成功地从外围设备读取数据。我遇到的问题是同时发送多个信息包。

例如,我先发送“abc”,然后再发送“def”。当中央根据外围设备的指示更新读数时,我应该能够在最后获得“abcdef”。如果我以每秒 10 个数据包的速度发送指示,这就可以正常工作。

但是,一旦我的速度达到默认指示速度,中央就快跟不上了。我只收到第一个指示“abc”,但从未收到“def”的指示。

有没有一种方法可以强制 didUpdateValueFor 方法同时运行,以便它捕获所有传入的通知,而不管速度如何?

最佳答案

best-practices chapter of the Core Bluetooth Programming Guide建议通过setNotifyValue:forCharacteristic:订阅使用而不是简单读取经常变化的特征。

从您的问题中不清楚您是使用订阅还是通过 readValueForCharacteristic 进行轮询:

关于ios - 并发委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22418884/

相关文章:

ios - 计步器在iPhone 5中不起作用

ios - cocos2d 3.x 如何处理 Sprite 外部的触摸

ios - 升级IOS设备到指定版本

visual-c++ - 无需 key 的蓝牙配对

ios - 扫描提供特定服务的外围设备,但在发现的外围设备上找不到服务

ios - 将音频样本从流附加到AVAssetWriter

ios - 在 SwiftUI 的导航栏中设置图像和标题

iphone - iPhone 上的蓝牙低功耗连接间隔

ios - Swift - 将数据转换为十进制值

raspberry-pi - 树莓派蓝牙 4.0 连接