2010-10-03 33 views
1

我使用.xib來佈局我的viewController,並有IB使用的10個IBOutlet對象,他們都沒有@properties分配給他們(不@ @property(保留)IBOutlet ...)。當我釋放viewController時,這些對象都沒有被釋放,我必須在viewController的dealloc中手動釋放它們。當我使用.xib文件來佈局我的viewController IBOutlets沒有被釋放視圖控制器發佈時

這似乎不是正常的行爲,我認爲這些對象將被系統釋放,因爲IB是什麼分配它們,我會做什麼錯?

回答

1

蘋果的Memory Management Programming Guide告訴你如何properly release IBOutlets

總之,你應該在dealloc中釋放它們,但你也想在viewDidUnload中釋放它們。

+0

啊,這是4.x中的新行爲,現在我們有一個viewDidUnload,它只是在3.x中爲你處理它? – Shizam 2010-10-03 01:09:57

+0

他們被分配給你的ivars,所以你擁有他們,所以你必須釋放他們。 *過去一直如此。*過去,Leaks沒有檢測到某些類型的垃圾(它永遠不會檢測到泄露的UIImageView);也許他們解決這個問題我也強烈建議使用屬性並使用'self.foo = nil'來代替;當我看到沒有將它們設置爲零的代碼時,我會畏縮。 – 2010-10-03 01:27:16

+0

謝謝,並同意:將事情設置爲零。 – Shizam 2010-10-03 02:06:22

相關問題