Почему NSMutableArray Всегда ошибка, когда allo init autorelease в классе init? - PullRequest
0 голосов
/ 08 августа 2011

Где-то на .h Я положил

@property (nonatomic, retain) NSMutableArray * BusinessQueue;

-(BNUtilitiesQuick *) init {
        if (!(self = [super init]))
        {
            return nil;
        }//if the superclass is NSObject, this must be init
        self.locationManager = [[[CLLocationManager alloc] init]autorelease];
        BusinessQueue = [[[NSMutableArray alloc]init]autorelease]; 
        return self; //and return the object itself
    }

На мой взгляд, BusinessQueue = [[[NSMutableArray alloc]init]autorelease]; сделает счетчик ссылок 1. 1 для alloc.-1 для автоматического выпуска (иногда последнего) и 1, потому что BusinessQueue является сохраняемым свойством.

Однако BusinessQueue иногда освобождается иногда.

Почему BusinessQueue всегда выдает ошибку, а менеджер местоположения не

вводит неправильный код?или NSMutableArray Не может быть объявлено в классе инициализации?

1 Ответ

5 голосов
/ 08 августа 2011

BusinessQueue не является собственностью.self.BusinessQueue может быть, если вы определили его таким образом.

Добавлено:

И лучший / самый простой способ выполнить инициализацию:

self.businessQueue = [NSMutableArray array];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...