[解決済み] 認識できないセレクタがインスタンスに送信される - Swift 4のみ
質問
このエラーの意味がわからなくて困っています。私のアプリは、Swift 4に移行するまで問題なく動作していました。今、私はこれを得ています
tableView:numberOfRowsInSection
というエラーが発生します。Swift 3.2 では、これらのエラーは発生しませんでした。numberOfRowsInSectionメソッドは、すべてのケースで実装されており、問題なく表示されます。誰かが正しい方向を示すことができますか?
2017-11-26 10:21:04.973523-0600 Y2GOsp[27701:6382461]です。 -[Y2GOsp.ClientDetailViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fa51c89f000 2017-11-26 10:21:43.328635-0600 Y2GOsp[27701:6382461] *** Terminating app due to. 捕捉されない例外 'NSInvalidArgumentException', reason: '-[Y2GOsp.ClientDetailViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to the インスタンス0x7fa51c89f000'
numberOfRowsInSectionの実装です。
例1:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
例2:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dayAppoints.count
}
解決方法は?
Hamish さんのコメントで問題を特定しました。 あなたは
UITableViewDataSource
に、あなたの
class
という宣言があります。 そのため、データソースのメソッドがObjective-Cに公開されませんでした。
私の提案は
@objc
をメソッドに追加することで、問題を確認しました。
Swift 3でこれがうまくいった理由は、Swift 3で
NSObject
(どの
UIViewController
は、Objective-Cで利用可能でした。
Swift 4では
(SE-0160による)
で明示的にタグ付けする必要があります。
@objc
ただし、ベースクラスでそのようにマークされている関数をオーバーライドする場合、あるいはその関数が
@objc
プロトコルを定義しています。
関連
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み] 'strcmp' はこのスコープで宣言されていません。
-
[解決済み] リンカーコマンドが終了コード 1 で失敗した(起動を確認するには -v を使用)、Xcode 8、Swift 3
-
[解決済み] selector' の引数が '@objc' メソッド、プロパティ、またはイニシャライザを参照していない
-
[解決済み] dispatch_queue_create のキュー属性とは?
-
[解決済み] CocoaPods は、ポッド "Firebase/CoreOnly" の互換性のあるバージョンを見つけられませんでした。
-
[解決済み] 条件付きバインディング:letエラーの場合 - 条件付きバインディングのイニシャライザーはOptional型でなければならない
-
[解決済み] 起動画面にカスタムクラス名が設定されない場合がある
-
[解決済み] Swiftの@selector()?
-
[解決済み] Objective-Cです。複数の引数を持つセレクタを呼び出す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み】印刷します。エントリ, ":CFBundleIdentifier", Does Not Exist
-
[解決済み] Argument passed to call that takes no arguments "エラーを修正するには?
-
[解決済み] iOS Development 証明書が失効されました
-
[解決済み] Swiftを使って音を鳴らすには?
-
[解決済み] iOS HTTP GET リクエストを実行できません -Error Domain=NSURLErrorDomain Code=-1012
-
[解決済み] CocoaPodsでポッド「Firebase/Core」の互換バージョンが見つからなかった|cloud_firestore, Flutter
-
[解決済み] Swift の performSegueWithIdentifier が動作しない。
-
[解決済み] viewDidLoad()は何のためにあるのですか?[重複]する
-
[解決済み] あなたのリクエストはエラーを発生させました。[newNullResponse]?