1. ホーム
  2. cocoa

[解決済み] Swift のプロトコル: メソッドがスーパークラスのメソッドをオーバーライドしない。

2022-01-28 07:55:03

質問

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

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

    }

しかし、私はここでエラーが発生しました: メソッドはそのスーパークラスのメソッドをオーバーライドしていません。 どうしたらいいでしょうか?

どうすればいいですか?

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