iPhone - Должен ли я вручную освободить представление моего customViewController в методе dealloc? - PullRequest
0 голосов
/ 25 июля 2011

Я использую контроллер навигации, чтобы выдвинуть пользовательский viewController на экран. Когда я закончу и вытолкну его, я обнаружу, что метод dealloc вызывается для customViewController, но метод viewDidUnload не вызывается. Означает ли это, что вид все еще там? Это может быть проблема с памятью для меня, если так. Если это так, должен ли я затем освободить представление в моем методе dealloc в моем customViewContoller? Спасибо.

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Это не обязательно.Когда ваш UIViewController подкласс получит -dealloc, вы должны освободить все оставшиеся свойства.Затем он достигнет [super dealloc].Не могу говорить с уверенностью, но -dealloc на UIViewController должен также обрабатывать сброс всех его сохраненных свойств.Таким образом, ваше представление будет выпущено надлежащим образом.

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

1 голос
/ 25 июля 2011

Обычно вы отпускаете контроллер вида после его нажатия. Например:

UIViewController *myVC = [[UIViewController alloc] init];
[[self navigationController] pushViewController:myVC animated:YES];
[myVC release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...