CoreBluetooth:在CBPeripheralStateConnecting中执行didDisconnectPeripheral回调

时间:2014-01-20 20:49:40

标签: ios7 core-bluetooth

浏览我的'CoreBluetooth'状态机生成的日志,并注意到外围设备在didDisconnectPeripheral之前和CBPeripheralStateConnecting之前正在调用didConnectPeripheral。代码不受这种陌生感的影响,但我想了解发生了什么。

其他人是否经历过这种或类似的事情?我找不到合理的解释。

1 个答案:

答案 0 :(得分:0)

在iOS6中,当CoreBluetooth相当不太成熟时,我采用了请求连接的连接策略,如果连接未在接下来的2秒内产生,我会调用cancelPeripheralConnection然后发出另一个{{} 1}}此循环将再次继续3次,然后终止并通知用户出现了问题。

connectPeripheral的调用似乎是didDisconnectPeripheral的调用,即使没有先连接,也是对cancelPeripheralConnection的中间调用的结果。

现在,随着iOS7的稳定性,并且我已经知道connectPeripheral永远不会超时,我已经消除了中间cancelPeripheralConnection的复杂性。 connectPeripheral调用并等待连接,超时。

没有更多神秘的didDisconnectPeripheral电话!