[解決済み] クラスがNSObjectProtocolに適合していない [重複]。
2022-05-25 22:08:56
質問
私のクラスは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]) {
}
}
どのように解決するのですか?
参照 NSObjectのクラスを継承しないと、なぜswiftではプロトコルを採用できないのでしょうか?
簡単に言うと
WCSessionDelegate
を継承しているのです。
NSObjectProtocol
を継承しているので、そのプロトコルのメソッドも実装する必要があります。これらのメソッドを実装する最も簡単な方法は
NSObject
:
class BatteryLevel: NSObject, WCSessionDelegate
ここでは、Obj-CのAPIを扱っていることに注意してください。
関連
-
[解決済み] スウィフト 2: !, ?-" オプション型「...」の値がアンラップされていない"
-
[解決済み] Swift Optionals - 条件の変数バインディングはイニシャライザを必要とする
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み] Pythonにはクラス内に「プライベート」変数がある?
-
[解決済み] なぜクラスではなくストラクチャーを選ぶのか?
-
[解決済み] プログラミング言語Swiftで文字列のn文字目を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] swift 3 エラー。引数ラベル '(_:)' は利用可能なオーバーロードに一致しません。
-
スレッド1:シグナルSIGABRTの問題解決
-
[解決済み] 2倍値を小数点以下x桁に丸める処理を素早く行う。
-
[解決済み] Swiftではクロージャの内部では常に[unowned self]を使うべきか?
-
[解決済み】Xcode 6 Beta 4でアプリを実行すると「表示権限がないため、ファイル "MyApp.app" を開くことができません。
-
[解決済み】weak referenceとunowned referenceの違いは何ですか?
-
[解決済み】Swiftの構造体のために、メンバーごとの初期化子をデフォルトで公開するにはどうすればよいですか?
-
[解決済み】Swiftの列挙型と関連する値の等質性をテストする方法
-
[解決済み】iOS8でSwiftを使用して特定のViewControllerのステータスバーの色を変更する。
-
[解決済み】swift言語におけるstructureとclassの比較