CBPeripheralManager中的断言失败responseToRequest:withResult

时间:2015-10-19 21:41:19

标签: ios core-bluetooth cbcentralmanager cbperipheralmanager

当我的iOS(外围设备)开始做广告时,我立即重新运行我的应用程序,此时,我的计算机(中央)正在订阅一个特征并写入它。

一旦我的外设应用程序完成启动,出现问题(可能是因为中心以前试图写入它)并且我的应用程序崩溃了这条消息:

*** Assertion failure in -[CBPeripheralManager respondToRequest:withResult:], /SourceCache/CoreBluetooth/CoreBluetooth-256/CBPeripheralManager.m:423

我从不在我的代码中调用“respondToRequest”,我所有外设的特性都配置如下(WriteWithoutResponse):

let properties: CBCharacteristicProperties = [CBCharacteristicProperties.Read, CBCharacteristicProperties.WriteWithoutResponse, CBCharacteristicProperties.Notify]
let permissions: CBAttributePermissions = [CBAttributePermissions.Readable, CBAttributePermissions.Writeable]

当我写下Centra结尾的特征时,我使用:

writeValue(chunkOfData, forCharacteristic: charactristic, type: CBCharacteristicWriteType.WithoutResponse)

我不确定如何防止此问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

从我们的讨论中看来,在初始化CBPeripheralManagerOptionRestoreIdentifierKey但未实现状态恢复方法时提供CBPeripheralManager和相关值会导致异常。