6

Apple の MyLife サンプル プロジェクトをダウンロードし、Xcode 8 beta 6 を使用してビルドして実行しようとしました。

prepare(for:sender:)ストーリーボード セグエが実行される前に、View Controller が実行する呼び出しを実装している場所が 2 つあります。

    override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {

その行には、「メソッドはそのスーパークラスのメソッドをオーバーライドしません」というエラーがあります。

オーバーライドを削除すると、アプリはビルドされますが、必要なときにメソッドが呼び出されません。

4

1 に答える 1

10

メソッドのシグネチャが変更されました。senderAny?代わりになりましたAnyObject?

override func prepare(for segue: UIStoryboardSegue, sender: Any?)

これは、 「Xcode 8 ベータ 6 の新機能 - Swift コンパイラ」で説明されているように、Swift が obj-c でブリッジされる方法の変更と一致するためです。

于 2016-08-15T20:49:29.030 に答える