Подтвердить что ты не робот

Выйти из объекта init с помощью дуги?

Как я могу избавиться от создания объекта с помощью ARC?

Я ищу эквивалент ARC этого (из памяти):

- (id)init
{
     if (( self = [super init] )) {
         if (!condition) {
             [self release];
             self = nil;
             return self;
         }
     }
     return self;
 }
4b9b3361

Ответ 1

Просто избавьтесь от вызова release, и все будет в порядке. Поскольку вы не знаете, больше не будет ссылок на старое "я", поэтому оно будет освобождено.

- (id)init;
{
     if ((self = [super init])) {
         if (!condition) {
             return nil;
         }
     }
     return self;
 }