2012-11-05 101 views
0

指向在UIViewController與ARC最佳實踐的實例,將「釋放」任何保留主視圖的子視圖(如self.myOutlet = nil)在- viewDidUnload,我的猜測是self.view = nil不嚴格在這一點上是必要的。釋放保留的財產在self.view

如果額外retain ED屬性被定義並分配爲做什麼...

self.anotherProperty = self.view;

_anotherProperty = self.view; //假設「_anotherProperty」是ivar

......是self.anotherProperty = nil需要嗎?

回答

0

viewDidUnload什麼都沒有(我假設我們正在討論在iOS 6之前運行,因爲視圖不再在iOS 6中卸載,因此viewDidUnload不再被調用)是「必要的」;這只是一個可選的機會來卸載東西。

但是,如果您想按照約定爲viewDidUnload正確地卸貨,您是否應該清零您的財產?是。 1)如果沒有,你的財產仍然保留視圖對象,防止它被解除分配,這是卸載視圖的要點。 2)視圖已經被卸載,這意味着self.view被設置爲零,並且當我們決定加載視圖時將被設置爲新加載的視圖。如果您希望自己的房產總是指向self.view,那麼您需要按照步驟將其設置爲零,然後將其設置爲viewDidLoad中已加載的視圖。