Сохранять / освобождать память со свойствами - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть метод, который получает данные от менеджера данных. Это выглядит примерно так:

- (void)GetData {
    NSArray *anArray = [datamanager GetData]; // GetData returns an autoreleased array
    self.MyDataArray = anArray;  
}

MyDataArray объявлен как свойство (неатомное, сохраняется)

Мой вопрос в том, что функция datamanager GetData изменяется в другом месте кода, возвращая различные значения для anArray при вызове GetData. Я запутался в строке self.MyDataArray = anArray. Потому что, насколько я знаю, это будет сохранять anArray в первый раз, затем снова вызывается метод GetData, затем сохраняется другой anArray и так далее. Так это утечка памяти? Если так, что мне нужно сделать, чтобы не было утечки памяти? спасибо.

1 Ответ

0 голосов
/ 03 ноября 2011

Нет утечки памяти, потому что MyDataArray, объявленный как retain, имеет реализацию, которая освобождает любую содержащуюся в нем ссылку перед сохранением новой ссылки, когда вы делаете self.MyDataArray = anArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...