반응형
클래스가 NSObjectProtocol을 준수하지 않습니다.
내 클래스가 NSObject Protocol을 준수하지 않는다는 오류가 발생했는데, 이것이 무엇을 의미하는지 알 수 없습니다.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]) {
}
}
자세한 내용은 NSObject에서 클래스를 상속받지 않고 프로토콜을 신속하게 채택할 수 없는 이유를 참조하십시오.
요컨대,WCSessionDelegate
그 자체는 에서 상속된다NSObjectProtocol
따라서 해당 프로토콜에서도 메서드를 구현해야 합니다.이러한 방법을 구현하는 가장 쉬운 방법은 서브클래스를 사용하는 것입니다.NSObject
:
class BatteryLevel: NSObject, WCSessionDelegate
여기서 Obj-C API를 취급하고 있습니다.
언급URL : https://stackoverflow.com/questions/40705591/class-does-not-conform-nsobjectprotocol
반응형
'programing' 카테고리의 다른 글
단일 파일 하드 리셋 (0) | 2023.04.13 |
---|---|
목록을 python에서 dict 키로 사용할 수 없는 이유는 무엇입니까?사용할 수 있는 것과 사용할 수 없는 것이 정확히 무엇이고, 그 이유는 무엇입니까? (0) | 2023.04.13 |
sed를 사용하여 파일의 마지막 n 행을 삭제하는 방법 (0) | 2023.04.13 |
Bash 스크립트 - 실행할 명령어로서의 가변 콘텐츠 (0) | 2023.04.13 |
Python에서 사전 목록 검색 (0) | 2023.04.13 |