11

Swift を使用して作成している新しいアプリにサードパーティのライブラリを使用しています。finalクラス/ライブラリの作成者は、おそらくそのプロパティとメソッドを最適化し、オーバーライドするのを防ぐために、キーワードを使用して最終的なものにしました。

例:

final public class ExampleClass {
   // Properties and Methods here
}

クラスを拡張し、デフォルトをオーバーライドせずにいくつかの新しいプロパティとメソッドを追加することは可能ですか?

そのようです:

extension ExampleClass {
    // New Properties and Methods inside
}
4

4 に答える 4

7

拡張機能には保存されたプロパティが含まれていない場合がありますが、内部にメソッドを追加できます。

于 2015-11-05T08:24:37.400 に答える
5

拡張機能 (Objective-C カテゴリなど) では、保存されたプロパティは許可されません。
ただし、メソッドと計算されたプロパティは問題ありません。

Objective-C での一般的な (しかし IMO ハッキーな) 回避策は、関連付けられたオブジェクトを使用してカテゴリ内のストレージを取得することでした。これは、Swift でも機能しますimport ObjectiveC
この回答には詳細が含まれています。

于 2015-11-05T08:36:37.663 に答える