2010-06-26 37 views
1

我用TableView制作了一个静态mainmenu。有时它崩溃,因为我的子视图已经释放子视图。Objective-C:释放视图的点

也行,以释放本地对象,而不是说的dealloc方法视图:

[NavController pushViewController:self.AnotherView animated:YES]; 
[self.AnotherView release]; //This line into (void)viewDidLoad 

AnotherView在headerfile的属性定义,也synchronozed在.M-文件

当我使用dealloc方式,它在设备上效果很好,但我需要知道这是否正确。

回答

1

您只能为您自己发送initalloc的对象。如果它是您班级的房产,则release在您班级的dealloc中。

所以你的情况,除非你initanotherView几行上面的示例代码(同样的方法),要求它release你在哪里将会导致泄漏/ SIG_ABORT因为你已经这样做了过早。

随意发布更多代码,尤其是如何分配另一个视图,您可能会得到更具体的答案。

+0

版本将导致双重自由,而不是泄漏。 – drawnonward 2010-06-26 20:12:26

+0

是的。我试图弄清Simon收到的错误。但是,这是一个过早的发布。 TWSS – 2010-06-26 22:04:43

+0

如果您保留或复制它,您也必须释放该对象... – holex 2013-11-03 16:55:26

相关问题