2012-04-05 63 views
3

我只是在编程时想知道。我有一个rootViewController,它创建了一个childViewController的实例。这个childVC从另一个childViewController(比如childVC2)通过[self.navigationController pushViewController:childVC]推送到我的rootViewController。现在我想知道我的childVC2实例会发生什么。它会被释放吗?因为当从childVC返回到childVC2时,我创建了一个childVC2的新实例并将其推送到我的rootViewController中。很显然,我对childVC2的早期实例没有任何用处,所以发生了什么与它或郝我可以手动释放它?将viewController推入另一个viewController后会发生什么

回答

1

是的,如果你是分配的ViewController你必须释放它..推会增加其引用计数1,所以你必须确保你弹出它来解码引用计数..并为创建例如在.H定义它,创造它的时候做这样的

if(yourViewController) 
    [yourViewContoller release]; 

yourViewController = [yourViewControllerClass alloc] init]; 

另一个opition是让它自动释放,在这种情况下,你是不负责释放的ViewController

yourViewController = [yourViewControllerClass alloc] init]autorelease]; 
+0

谢谢!但是如果我使用ARC,我的程序会自动为我做这个工作吗? – iJatrat 2012-04-05 16:10:34

+0

如果您使用的是ARC,请不要担心释放对象。iOS会照顾它。 – 2012-04-05 16:41:30

相关问题