В Objetive-C шаблон для инициализатора равен
-(id)init
{
if (self = [super init]) {
// Initialization code here
}
return self;
}
В случае сбоя инициализатора он должен вернуть nil
. Это означает, что в случае сбоя инициализатора необходимо правильно выпустить self
, чтобы избежать утечки. Поэтому я думаю, что вы в безопасности, пока вы следуете шаблону.
-(id)init
{
if (self = [super init]) {
if (myInitializationFunc() == ERR_FAIL) {
[self release];
return nil;
}
}
return self;
}