tableView cellForRow автоматически выпускает мой объект - PullRequest
0 голосов
/ 20 августа 2011

Я создал объект, подобный следующему:

NSDictionary *listProfils;

...

@property (nonatomic, retain) NSDictionary *listProfils;

...

@synthetize listProfils

Позже в коде я устанавливаю свой объект в методе viewDidLoad , затем производим подсчет в методе tableView: tableViewcellForRowAtIndexPath:

Проблема в том, что когда программа читает метод tableView: tableViewcellForRowAtIndexPath: , мой объект уже освобожден, тогда как его не было в предыдущем методе.

Кто-нибудь знает, в чем здесь проблема и почему мой объект выпущен?

Заранее спасибо!

1 Ответ

0 голосов
/ 20 августа 2011

Недостаточно вашего кода, чтобы точно сказать, что не так, но я сделаю предположение.Вы, вероятно, сделали что-то вроде

listProfils = [NSDictionary dictionaryWith... //etc.];

, и, поскольку это возвращает автоматически выпущенный словарь, который не сохраняется в ivar, словарь будет выпущен через некоторое время.Лучше использовать ссылку на свойство:

self.listProfils = [NSDictionary dictionaryWith... //etc.];

, которая позаботится о сохранении только что созданного вами словаря, а авторелиз - об освобождении локальной ссылки.

...