Где освободить контроллер вида в блоке - PullRequest
1 голос
/ 20 октября 2011

Привет, я использовал блоки для реализации перемещения контроллеров представления в стек. Мой код выглядит следующим образом:

Мой вопрос, для управления памятью, где я могу выпустить первый экземпляр ViewView? Я попытался освободить его в самом блоке завершения, но у меня возникнет «проблема с памятью», если я нажму кнопку «Назад» от splashView до firstView

FirstViewController *firstView = [[FirstViewController alloc]init];

[firstView setCompletionHandler:^(BOOL isRequestInvite){

    splashView=[[AuthSplashController alloc] init];
    [splashView setCompletionHandler:onceCompleted];

    [navCon pushViewController:splashView animated:YES];
    //[firstView release];

}];

[navCon pushViewController:firstView animated:NO];

Так в таком случае, где было бы лучшее место для выпуска firstView?

1 Ответ

4 голосов
/ 20 октября 2011

Я думаю, что вы можете release firstView после добавления его в стек навигации, потому что счетчик будет увеличен:

 [navCon pushViewController:firstView animated:NO];
 [firstView release];

Или вы можете пометить этот объект как autoreleased:

 FirstViewController *firstView = [[[FirstViewController alloc]init] autorelease];
...