Я пытаюсь понять, как время жизни объекта и счетчик ссылок взаимодействуют с блоками кода.В следующем коде я просто делаю простую анимацию, которая мигает при смене вида сверху на стек UINavigationController.Сложность в том, что контроллер всплывающего представления - это тот, где этот код определен .
[UIView animateWithDuration:0.2
animations:^{self.navigationController.view.alpha = 0.0;}
completion:^(BOOL finished){
UINavigationController *navController = self.navigationController;
[self.navigationController popViewControllerAnimated:NO];
[navController pushViewController:nextView animated:NO];
[nextView release];
[UIView animateWithDuration:0.2
animations:^{navController.view.alpha = 1.0;}];
}];
Мой вопрос (игнорируя, как выглядит анимация), это правильный путь?сделать это с точки зрения управления памятью.В частности:
(1) Правильно ли использовать этот подход для цикла pop + push, что больше нет необходимости сохранять себя, как в других подобных примерах , которые неиспользовать блоки?
(2) Сохраняет ли при вызове animateWithDuration: ... с этими блоками определяющий контроллер представления (self) до тех пор, пока блоки не будут выполнены?