在我实现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/