Странное сообщение в CoreBluetooth / CBCentralManagerDelegate - PullRequest
0 голосов
/ 11 января 2019

В моей реализации протокола 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 голосов
/ 11 января 2019

Согласно документации Apple: If the disconnection was not initiated by cancelPeripheralConnection(_:), the cause is detailed in error.

Т.е. если вы отключаетесь, вы не получаете ошибки, но если они отключаются, вы видите это через ошибку. Источник: https://developer.apple.com/documentation/corebluetooth/cbcentralmanagerdelegate/1518791-centralmanager

...