0

私の 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)

この問題を防ぐ方法がわかりません。アイデアはありますか?

4

1 に答える 1

0

私たちの議論から、状態復元メソッドを実装せずCBPeripheralManagerOptionRestoreIdentifierKeyに初期化するときに および 関連する値を提供すると、例外が発生したようです。CBPeripheralManager

于 2015-10-20T01:06:01.473 に答える