CoreBluetooth / CBCentralManagerDelegate中的一条奇怪消息

时间:2019-01-11 01:50:20

标签: ios swift core-bluetooth

在实现CBCentralManagerDelegate协议的过程中,我具有以下功能。

func centralManager(_ central: CBCentralManager,
                    didDisconnectPeripheral peripheral: CBPeripheral,
                    error: Error?) {
    print(#function)
    if error != nil {
        print("Error in \(#function) :\n\(error!)")
        return
    }
    ......
    // More useful code irrelevant to the question.
}

调用上述函数后,我可以在Xcode调试控制台中看到以下消息。

centralManager(_:didDisconnectPeripheral:error:)
Error in centralManager(_:didDisconnectPeripheral:error:) :
Error Domain=CBErrorDomain Code=7 "The specified device has disconnected from us." 
UserInfo={NSLocalizedDescription=The specified device has disconnected from us.}

这是我的问题: 我一定会丢失一些东西(因为太简单或太微妙),但为什么会显示错误,因为“ 指定的设备已与我们断开连接。

centralManager:didDisconnectPeripheral 函数中,除了断开设备连接外,我还能期待什么?

我希望一些开明的专家能为您解释一下为什么会这样。

1 个答案:

答案 0 :(得分:1)

根据Apple文档: If the disconnection was not initiated by cancelPeripheralConnection(_:), the cause is detailed in error.

也就是说,如果您断开连接,则不会出现任何错误,但是如果他们断开连接,则会通过错误看到这一点。 来源:https://developer.apple.com/documentation/corebluetooth/cbcentralmanagerdelegate/1518791-centralmanager