【问题标题】:Why Class doesn't confirm to protocol 'WCSessionDelegate' error showing even when all required methods are implemented为什么即使实现了所有必需的方法,Class 也不会确认协议“WCSessionDelegate”错误
【发布时间】:2016-10-02 13:56:31
【问题描述】:

这里不是我使用的部分代码:

class RealTimeVC : UIViewController, WCSessionDelegate{
   var session : WCSession!
   override func viewWillAppear(animated: Bool)
    {
        if (WCSession.isSupported())
        {
            session = WCSession.defaultSession()
            session.delegate = self
            session.activateSession()

        }
    }

    //WCSessionProtocol

    func session(session: WCSession,
                 activationDidCompleteWith activationState: WCSessionActivationState,
                 error: NSError?){
        print("Print Something")
    }

    func sessionDidBecomeInactive(session: WCSession){
         print("Print Something")
    }

    func sessionDidDeactivate( session: WCSession){
         print("Print Something")
    }

}

如果类没有实现 WCSessionDelegate 协议,则没有编译器错误。我使用的是 Xcode 8 Beta,Swift 3,部署目标是 iOS10 和 WatchOS 3。

【问题讨论】:

  • 我使用的协议方法名有错误。 activationDidCompleteWith 最后缺少文本状态。正确的方法是:activationDidCompleteWithState

标签: swift3 ios10 healthkit


【解决方案1】:

看起来您实现的“激活完成”委托回调与协议要求的回调并不完全匹配。一旦你解决了这个问题,你应该会发现编译器会接受你的协议一致性!

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 2023-03-29
    • 1970-01-01
    • 2018-05-24
    相关资源
    最近更新 更多