嗨,我使用 block 来实现将 View Controller 推送到堆栈上。我的代码如下:
我的问题是,对于内存管理,我可以在哪里释放 firstView 实例?我试图在完成 block 本身中释放它,但如果我按从 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 的最佳位置呢?
最佳答案
我想你可以release
firstView
将其推送到导航堆栈后,因为保留计数会增加:
[navCon pushViewController:firstView animated:NO];
[firstView release];
或者您可以将该对象标记为
autoreleased
: FirstViewController *firstView = [[[FirstViewController alloc]init] autorelease];
关于objective-c - 在 Block 中释放 View Controller 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7832270/