2014-01-20 4 views
1

Проходя через журналы, созданные моей государственной машиной «CoreBluetooth» и заметили, в некоторых случаях didDisconnectPeripheral вызывается в то время как периферийная в CBPeripheralStateConnecting и перед didConnectPeripheral. Код невосприимчив к этой странности, но я хотел бы понять, что происходит.CoreBluetooth: didDisconnectPeripheral обратного вызова в то время как в CBPeripheralStateConnecting

Кто-нибудь еще испытал это или что-то подобное? Я не могу найти логического объяснения.

ответ

0

В iOS6, когда CoreBluetooth был относительно менее зрелым, я принял стратегию соединения с запросом соединения, если соединение не привело к следующим двум секундам, я тогда позвонил бы cancelPeripheralConnection, а затем выпустил еще connectPeripheral, этот цикл продолжится еще 3 перед тем, как завершать и информировать пользователя о том, что что-то не так.

Похоже, что звонки в didDisconnectPeripheral, даже если они не были впервые подключены, были результатом промежуточных вызовов на cancelPeripheralConnection.

Теперь со стабильностью iOS7 и, узнав, что connectPeripheral никогда не раз, что я извлекал сложности промежуточных cancelPeripheralConnection & connectPeripheral звонков и просто ждать связи с тайм-аут.

Не более тайны didDisconnectPeripheral звонки!

Смежные вопросы