类不符合 NSObjectProtocol

我得到一个错误,我的类不符合 NSObjectProtocol,我不知道这意味着什么。我已经实现了来自 WCSessionCommittee 的所有函数,所以这不是问题所在。有人知道问题出在哪吗?谢谢!

import Foundation
import WatchConnectivity


class BatteryLevel: WCSessionDelegate {




var session: WCSession? {
didSet {
if let session = session {
session.delegate = self
session.activate()
}
}
}


var batteryStatus = 0.0;


func getBatteryLevel(){
if WCSession.isSupported() {
// 2
session = WCSession.default()
// 3
session!.sendMessage(["getBatteryLevel": ""], replyHandler: { (response) -> Void in
if (response["batteryLevel"] as? String) != nil {
self.batteryStatus = (response["batteryLevel"] as? Double)! * 100
}
}, errorHandler: { (error) -> Void in
// 6
print(error)
})
}}




func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
}


func session(_ session: WCSession, didReceiveMessage message: [String : Any]) {
}
}
62394 次浏览

参见 为什么我们不能迅速地采用一个没有继承 NSObject 类的协议?

简而言之,WCSessionDelegate本身继承自 NSObjectProtocol,因此您也需要在该协议中实现方法。实现这些方法的最简单方法是子类 NSObject:

class BatteryLevel: NSObject, WCSessionDelegate

注意,您在这里处理的是 Obj-C API。