【问题标题】:Checkk if Apple Watch is connected (Swift 5)检查 Apple Watch 是否已连接(Swift 5)
【发布时间】:2020-02-29 06:36:50
【问题描述】:

我已经为 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

即使一切正常并且我成功地从手表接收到数据...

我在这里查看了其他问题,但它们都有类似的解决方案:

Solution 1

Solution 2

【问题讨论】:

    标签: ios swift xcode watchos watchconnectivity


    【解决方案1】:

    self as? WCSessionDelegate 可能返回 nil,因为该类没有实现 WCSessionDelegate 协议。演员as? WCSessionDelegate 应该是不必要的。您需要使您的类符合协议(如解决方案 2 所示):

    class SomeClass: WCSessionDelegate {
    
        // ...
    
    }
    

    【讨论】:

    • 谢谢!我在符合我的课程后添加了必要的功能,现在它可以工作了!
    猜你喜欢
    • 2020-10-03
    • 2015-03-03
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    • 2011-03-22
    相关资源
    最近更新 更多