そのような初期化を行う指定された初期化子があるとします。
- (id)initWithBlah:(NSString *)arg1 otherBlah:(NSArray *)arg2
{
if (self = [super init])
{
...
}
return self;
}
これを呼び出す必要がある別の初期化子がありますが、その後、他のセットアップタスクを実行します。
- (id)initWithSomeOtherBlah:(void *)creativeArg
{
// Is this right? It seems to compile and run as expected, but feels wrong
self = [self initWithBlah:nil otherBlah:nil];
if (self)
{
[self someProcessingForThisInitDependentOnSelfInit:creativeArg];
}
return self;
}
戻り値が正しいことを確認するためのテストなので、このコンテキストでは 'self' を使用する必要がありますか? これがイベントの有効な組み合わせでさえあるのかどうか疑問に思っています。指定されたイニシャライザが実行された後に、追加のセットアップを実行する必要があるイニシャライザがある状況があります。
この追加処理を指定された初期化子に押し込むことが正しいアプローチかどうか疑問に思っています..
さらに説明が必要な場合はお知らせください。私はこれをシンプルにしようとしていました。:)
ありがとう!