自分のやりたいことができるとは思えませんが、ここには自分より狡猾な人たちがいるので、とにかく聞いてみようと思いました....
クラス A があるとします。
@interface A
@property (strong) NSArray *items;
// There'll be methods and stuff too
@end
ここで、いくつかの動作面を変更するために、このクラスを置き換える必要があります。
@interface B : A
@property (strong) NSArray *items;
// There'll be methods and stuff too
@end
特に、"items" プロパティをオーバーライドして、別のものを返す必要があるためです。
これは、A に実装され、B によってオーバーライドされていない B のインスタンスで呼び出されるメソッドが「self.items」にアクセスしようとするまではうまく機能します。独自のコピーにアクセスするのではなく、B のオーバーライドされたバージョンにアクセスするため、予期しない結果が表示され、実際に私の実際のケースではアプリがクラッシュします :(
Bのプロパティの名前を変更することでこれを解決できますが、これはもはや代替品ではなく、残念です。
クラス B は、super を介してプロパティの A のバージョンにアクセスできることに注意してください。理想的には、クラス A からのプロパティへのアクセスは、A のバージョンにもアクセスします。助言がありますか?たとえば、私のゲッターでは、誰がそれを要求しているかを知る方法はありますか?
ティム