我目前正在使用 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/