При установке свойства класса внутри метода нужно ли его освобождать? - PullRequest
0 голосов
/ 25 января 2012

Я очень плохо знаком с Objective-C.Я продолжал получать ошибку во время выполнения, когда пытался установить переменную класса внутри метода, а затем выпустить ее.Я понял, что единственный способ избавиться от ошибки времени выполнения - это не выпустить ее.
Так что, если переменная класса установлена ​​внутри метода, переменная метода temp не должна быть освобождена?

Мой код выглядел примерно так:

- (void)initData{
      NSMutableArray *tmpData = [[NSMutableArray alloc] init];

      self.data = tmpData;

      [tmpData release];
}

1 Ответ

2 голосов
/ 25 января 2012

То, что вы получите, будет правильным, если свойство data объявлено с атрибутом «сохранить» или «скопировать».Если data объявлен с атрибутом «assign» (по умолчанию), то, что вы получите, вызовет сбой.Решение в этом случае состоит в том, чтобы использовать сохранение (или, возможно, копирование) для data:

@property (nonatomic, retain) NSMutableArray *data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...