我应该为varSecondViewController使用release或autorelease吗?
-(IBAction)takeNextStep: (id) sender
{
SecondViewController *varSecondViewController = [[SecondViewController alloc]
initWithNibName:@"SecondViewController" bundle:nil];
[self.navigationController pushViewController:varSecondViewController animated:YES];
[varSecondViewController release];
}
答案 0 :(得分:12)
我的经验法则:
如果您要使用它,然后不再需要它的引用,发布它,
如果您要将其传递给调用者(即返回), autorelease 。
答案 1 :(得分:6)
autorelease
只是一个release
延迟到将来的某个时间,除非调用者创建了自己的自动释放池,否则保证至少是当前的调用堆栈。当您需要释放对象以遵循内存管理准则时,通常会使用它,但在调用堆栈中可能仍需要该对象。在这种情况下,您不会返回视图控制器,也无意再直接保持它,因此不需要延迟。你可以release
。
答案 2 :(得分:4)
在这种情况下,release
最有意义。