Я бы ожидал, что после того, как я нажму контроллер представления, мне нужно освободить свое владение над контроллером представления, как я сделал ниже.
CustomViewController *nextViewController = [[CustomViewController alloc] initWithNibName:@"CustomView" bundle:nil];
[[self navigationController] pushViewController:nextViewController animated:YES];
[nextViewController release];
После этого я предполагаю, что контроллер навигации имеет право собственности на этот объект и выпустит его, когда будет выполнен, который затем вызовет dealloc на моем customViewController. Я ожидаю, что это произойдет, когда я коснусь кнопки "Назад" на панели навигации, и представление больше не отображается. Однако этого не происходит. Я добавил NSLog (@ "CustomViewController действительно получил dealloc" ) в метод dealloc CustomViewController, но он никогда не печатается. Это нормальное поведение?
Контроллер навигации просто делает что-то вроде сохранения этого объекта в случае, если он ему нужен в какой-то момент? Сможет ли это избавиться от него, когда память начнет заканчиваться? Я попытался имитировать предупреждение о низкой памяти, но ничего не происходит. У меня есть чувство, что ответ на этот вопрос будет состоять в том, что я просто не должен так беспокоиться и следовать стандартной процедуре сохранения/выпуска/авторекламы. Тем не менее, кто-то еще углубился в это немного дальше и обнаружил абсолютный ответ?