Выручить из инициализации объекта с помощью дуги? - PullRequest
21 голосов
/ 27 февраля 2012

Как мне спасти создание объекта с ARC?

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

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

1 Ответ

26 голосов
/ 27 февраля 2012

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

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