Управление памятью контроллера представления в Objective-c - PullRequest
1 голос
/ 11 февраля 2010

Рассмотрим следующий код в инициализаторе класса:

UIViewController* blankViewController=[[DisplayViewController alloc] 
                   initWithNibName:@"Blank" bundle:nil];
self.nextView=blankViewController.view;

nextView - это свойство, которое использует retain. Обратите внимание, что blankViewController не был выпущен. Если бы он был выпущен, это вызвало бы сбой, поскольку представление, кажется, не сохраняет ссылку на viewController. Я хочу, чтобы контроллер представления оставался без присмотра, пока сохраняется ссылка на представление. Какой самый лучший способ исправить эту утечку памяти?

1 Ответ

2 голосов
/ 11 февраля 2010

Вам необходимо сохранить blankViewController в виде ивара self или сделать его (статической) глобальной переменной.

Затем, когда self освобожден, вы звоните [blankViewController release].

Вы должны сделать это, потому что нет другого (документированного) способа получить контроллер представления из вида.

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