CBCentralManagerDelegate

CBCentralManagerDelegate

在我实现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功能中,除了设备被断开之外,我还能期待什么呢?
我希望一些有见识的专家能解释一下为什么会这样。

最佳答案

根据苹果文档:
If the disconnection was not initiated by cancelPeripheralConnection(_:), the cause is detailed in error.
也就是说,如果你断开连接,那么你没有错误,但是如果他们断开连接,你可以通过错误看到这一点。
来源:https://developer.apple.com/documentation/corebluetooth/cbcentralmanagerdelegate/1518791-centralmanager

关于ios - CoreBluetooth/CBCentralManagerDelegate中的一条奇怪消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54139329/

10-10 11:50