programing

클래스가 NSObjectProtocol을 준수하지 않습니다.

powerit 2023. 4. 13. 21:16
반응형

클래스가 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

반응형