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