この状況に対処する方法に関する一般的なガイダンスを探しています。これが具体的な例です。
私は UIImageView をサブクラス化しており、initWithImage をオーバーライドして、提供されたイメージでスーパークラス自体を初期化した後、独自の初期化コードを追加したいと考えています。
ただし、UIImageView の指定されたイニシャライザは文書化されていないため、サブクラスが正しく初期化されるようにするには、どのスーパー クラス イニシャライザを呼び出す必要がありますか?
クラスが初期化子を指定していない場合は、次のことを行います。
- クラスの (UIImageView) 初期化子を呼び出しても安全だと思いますか?
- 指定されたイニシャライザのスーパー クラス (UIView) を参照してください。
この場合、オーバーライドされたイニシャライザで次のことを行うのが理にかなっているため、#1 が答えになるようです。
- (id)initWithImage:(UIImage *)image
{
self = [super initWithImage:image];
if (self) {
// DO MY EXTRA INITIALIZATION HERE
}
return self;
}