Swift 3の移行後、本当に変わったことが起こっています。 2つのビューコントローラがあり、どちらもUITableViewDelegate
を実装しており、両方とも実装していますpublic func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
Xcode 8/Swift 3:didSelectRowAtとdidSelectRowAtIndexPath
実際のメソッドが呼び出されます。
public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
からpublic func tableView(_ tableView: UITableView, didSelectRowAtIndexPath: IndexPath)
に変更した場合(Swift 2.2の署名に気付いた場合)、両方とも動作します。
両方のビューコントローラはSwiftクラスなので、何が起こっているのかわかりません。 私はそれがObjective-CとSwiftの相互運用性の問題であろうと確信していますが、私たちのプロジェクト全体がSwiftで書かれているので、何が原因であるか把握するのは難しいのです。
何か助けていただければ幸いです。 ありがとうございます。
を使うのか? Swift 3では削除されています。 '' 'didSelectRowAt'''しか使用できません。 –
Swift 2.2のように宣言されていて、うまくコンパイルされます。 – Cosmin
いくつかのcollectionViewデリゲート関数にも同様の問題がありました。すべてがうまくいっても動作しませんでした。機能していない関数をコメントアウトし、XCodeの自動補完を使って関数を再び追加したところ、うまくいきました。ちょうど両方の関数の間に誤字がないことを言及しています.....私は古い関数のコードをコピーして貼り付けました。新しいものとボイラー...それはおそらく助けになる –