CBPeripheral writeValue: forDescriptor 崩溃:

Mik*_*ike 5 ios core-bluetooth cbperipheral

与 TI BLE 密钥卡建立连接并检索特征描述符后,我尝试调用

   [peripheral writeValue: nsData forDescriptor: descriptor];
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

all*_*rog 0

文档中的注释writeValue:forDescriptor

客户端特征配置描述符不能使用此方法编写,而应使用setNotifyValue:forCharacteristic:

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

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