2016-10-04 2 views
1

SlackTextViewControllerから実装しようとしていますが、Xcode 8を使用してSwift 3に移行してからエラーが発生します。didPressRightButton()(SlackTextViewController)を使用したときのSwift 3エラー

override func didPressRightButton(sender: AnyObject?) { 

    if let messageToSend = self.textInputbar.textView.text { 

     // Save messageToSend to db 
     self.textInputbar.textView.text = "" 
     super.didPressRightButton(sender) 
    } 
} 

私は今取得していますエラーが

メソッドはスーパークラスからの任意のメソッドをオーバーライドしない、です。

なぜこれがSwift 3から出現したのかわかりません。ありがとうございます。

+0

おそらく変更された新しいバージョンのように、メソッドを再入力する必要があります。 IDEにメソッドを入力し、提案を待ちます。メソッドは、アンダースコア文字またはパラメータ名だけで何度も異なる。ありがとう、分かりました。 – pedrouan

答えて

4

SlackTextViewControllerがのObjective-Cで書かれているので、あなたはスウィフト3にアップグレードするので、このエラーが発生します。

スウィフト3以降、Objective-Cタイプidは、AnyObjectではなくAnyとしてインポートされるようになりました。

AnyObjectsendersuper.didPressRightButton(sender)を呼び出すとき、Swiftコンパイラは、参照しているメソッドを見つけることができません。

修正:メソッド定義でAnyObjectAnyに変更してください。 (ただし、オプション性が必要なのかどうかは分かりません)

+0

それはうまくいった。 – SmoothOperator

関連する問題