我得到一个错误,我的班级不符合NSObjectProtocol,我不知道这意味着什么.我已经实现了WCSessionDelegate的所有功能,所以这不是问题.有人知道问题是什么吗?谢谢!
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]) {
}
}
Run Code Online (Sandbox Code Playgroud)
Sul*_*han 237
请参阅为什么在swift中我们不能在没有继承NSObject类的情况下采用协议?
简而言之,WCSessionDelegate
它本身也是继承的,NSObjectProtocol
你也需要在该协议中实现方法.实现这些方法的最简单方法是子类NSObject
:
class BatteryLevel: NSObject, WCSessionDelegate
Run Code Online (Sandbox Code Playgroud)
请注意,您在此处理Obj-C API.
归档时间: |
|
查看次数: |
37445 次 |
最近记录: |