53

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

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

    }

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

4

1 に答える 1

112

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

于 2014-06-24T07:26:12.880 に答える