複数の初期化メソッドに新しい引数を追加する便利な方法を探しています。説明するのは少し難しいですが、私の問題は次のとおりです。
さまざまな初期化メソッドを実装するクラス ウィッチがあります。フェ
@interface Circle {
CGPoint center;
float radius;
}
- (id)initWithCenter:...radius:...;
- (id)initWithRect:...;
- (id)initWithPoly:...;
ここで、クロスヘア クラスをサブクラスとして作成します。したがって、インスタンス変数としていくつかの行を追加したいと思います。問題は、すべての crosshair-object を特定の値で初期化する必要があることですが、もちろん、円を初期化する方法は変更されません。そのため、スーパークラスのすべての init-method が必要ですが、それらの特定の引数をそれぞれに追加します。
(経験の浅い私の目には)直接的な方法は、魔女の各メソッドを上書きしてから、それに応じたスーパーメソッドを呼び出し、その後自分のことを行うことです。しかし、10 個以上の init メソッドがあり、それぞれに同じ引数を追加したい場合、これは非常に面倒です。それで、これを達成するためのより良いアプローチがあるかどうか尋ねていますか?スーパークラスを変更する機能がある場合とない場合があります。
どうもありがとう