Я помещаю свой подкласс UIViewController в стек навигации; тем не менее, поскольку он сохраняется с помощью navigationController, я «освобождаю» свой указатель на него после помещения его в стек, чтобы при его окончательном извлечении viewController был освобожден.
Однако, это не работает, метод dealloc для viewController никогда не вызывается. Код выглядит примерно так:
MyViewController *newViewController =
[self.storyboard instantiateViewControllerWithIdentifier:@"foo"];
[self.navigationController pushViewController:newViewController animated:YES];
newViewController = nil;
Даже в следующем коде мой newViewController не освобождается:
MyViewController *newViewController =
[self.storyboard instantiateViewControllerWithIdentifier:@"foo"];
newViewController = nil;
Насколько я понимаю, в новой системе автоматического подсчета ссылок (ARC) объекты освобождаются, когда на это ничего не указывает. Я поместил метод NSLog в метод dealloc создаваемого viewController, но он никогда не вызывается.
Что мне здесь не хватает?!
Спасибо за чтение моего первого сообщения о переполнении стека:)
** EDIT: **
Я прошу прощения. Я попробовал второй кусок кода, завернутый в пул авто-релиза, и он был освобожден. Затем я попробовал это без пула автоматического выпуска, и это также освободило должным образом. Я не знаю, что случилось прошлой ночью.
(2-е редактирование: и теперь его снова перестало работать. Fffffffuuuuuuuuuuuu)