CBPeripheralManager respondToRequest:withResult 断言失败
Assertion failure in CBPeripheralManager respondToRequest:withResult
当我的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)
我不确定如何避免这个问题。有什么想法吗?
根据我们的讨论,似乎是在初始化 CBPeripheralManager
时提供 CBPeripheralManagerOptionRestoreIdentifierKey
和关联值但未实施状态恢复方法导致了异常。
当我的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)
我不确定如何避免这个问题。有什么想法吗?
根据我们的讨论,似乎是在初始化 CBPeripheralManager
时提供 CBPeripheralManagerOptionRestoreIdentifierKey
和关联值但未实施状态恢复方法导致了异常。