Во-первых, нет, хранить такой объект не обязательно.Вам нужно только сохранять объекты в свойстве, если в дальнейшем классу потребуется доступ к объекту.В этом случае, я думаю, что локальная переменная подойдет.
В этом примере вы создаете ClassAViewController
с alloc
, что означает, что вызывающая сторона (этот метод) несет ответственность за ее освобождение после завершения работы сit.
Когда вы добавляете его в стек контроллера навигации, контроллер навигации сохраняет его, потому что сохраняет ссылку на него.
Итак, в конце этого метода вы должны освободитьэто, но он был сохранен контроллером навигации, поэтому он не удаляется.
Код должен выглядеть следующим образом:
- (IBAction) response {
ClassAViewController *viewController = [ClassAViewController alloc] initWithNib:@"ClassAViewController"
bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:viewController animated:YES]
[viewController release];
}
PS В target-C принято записывать имена переменных, начиная сс строчной буквы.Прописные начальные буквы используются для имен классов, и это сбивает с толку чудовище из меня!;)