2010-06-26 35 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

相關問題