您好我使用块来实现将viewcontrollers推送到堆栈上。我的代码如下:
我的问题是,对于内存管理,我在哪里可以发布firstView实例?我试图在完成块本身中释放它,但如果我从splashView按下后退按钮到第一个视图,我将得到“内存问题”
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的最佳位置?
答案 0 :(得分:4)
我认为你可以在导航堆栈上推送它后release
firstView
,因为保留计数会增加:
[navCon pushViewController:firstView animated:NO];
[firstView release];
或者您可以将该对象标记为autoreleased
:
FirstViewController *firstView = [[[FirstViewController alloc]init] autorelease];