4

在与 TI BLE Keyfob 建立连接并检索特征的描述符后,我尝试调用

   [peripheral writeValue: nsData forDescriptor: descriptor];

各种对象在调试器中看起来很合理。nsData 有一个单字节 1,peripheral 是从 iOS 返回的看起来有效的 CBPeripheral 对象,descriptor 是从 iOS 返回的看起来有效的 CBDescriptor。

我的应用程序因错误而崩溃

*断言失败 -[CBConcretePeripheral writeValue:forDescriptor:], /SourceCache/CoreBluetooth/CoreBluetooth-59.3/CBConcretePeripheral.m:358

关于为什么会发生这种情况或如何调试它的任何想法?

4

1 回答 1

0

来自文档的注释writeValue:forDescriptor

客户端特征配置描述符不能用这种方法写,应该改用setNotifyValue:forCharacteristic:

因此,如果您尝试写入连接的外围设备的描述符,那么它将失败。

要写特征,请使用- writeValue:forCharacteristic:type:方法。

于 2013-08-11T20:44:58.850 回答