web-dev-qa-db-ja.com

Swift protocols:メソッドはスーパークラスのメソッドをオーバーライドしません

Xcode 6にはまだSwiftのバグがたくさんあるので、それが1つなのか、何か不足しているのかはわかりません。私のクラスは、NSLayoutManagerDelegateプロトコルを採用しています。しかし、必要なメソッドをオーバーライドすることは不可能のようです。私はドキュメントが説明しているように:

override func layoutManager(_ aLayoutManager: NSLayoutManager!,
        didCompleteLayoutForTextContainer aTextContainer: NSTextContainer!,
        atEnd flag: Bool) {

    }

しかし、ここでエラーが発生します。メソッドはそのスーパークラスのメソッドをオーバーライドしません。私は何をすべきか?

43

はい、プロトコルからメソッドを実装していますが、オーバーライドではありません。 overrideキーワードを削除するだけです。オーバーライドとは、スーパークラスがそのメソッドも実装し、スーパークラス実装の動作を置換または変更するバージョンを提供している場合です。それはここで起こっていることではありません。

95
Ken Thomases