Проверьте, подключен ли Apple Watch (Swift 5) - PullRequest
0 голосов
/ 29 февраля 2020

Я подал заявку на устройство iOS, чтобы непрерывно получать данные пульса от часов. Он работает как задумано, и я хотел добавить тестовый пример, проверяющий, соединены ли часы (сопряжены) с устройством. Мой код для тестирования это:

if WCSession.isSupported() {
    let wcsession = WCSession.default
    wcsession.delegate = self as? WCSessionDelegate
    wcsession.activate()
    if(wcsession.isPaired){
        print("paired")
    }else{
        print("not paired")
    }
}

Однако я получаю сообщение об ошибке:

2020-02-29 15:25:55.044843+0900 HeartRateApp[68975:11196372] [WC] denying activation due to missing delegate 2020-02-29 15:25:55.044969+0900 HeartRateApp[68975:11196372] [WC] WCSession has not been activated

, хотя все работает, и я получаю данные от смотреть успешно ...

Я смотрел на другие вопросы здесь, но у них всех есть похожие решения:

Решение 1

Решение 2

1 Ответ

0 голосов
/ 29 февраля 2020

Вероятно self as? WCSessionDelegate возвращает ноль, поскольку класс не реализует протокол WCSessionDelegate. Приведение as? WCSessionDelegate не должно быть необходимым. Вы должны привести свой класс в соответствие с протоколом (как показано в решении 2):

class SomeClass: WCSessionDelegate {

    // ...

}
...