UIViewController卸載過程(ios6.0以前)

1.當應用程序收到內存不足的警告以後,程序中全部存在的UIViewController都會收到didReceiveMemoryWarning調用消息,目的是將當前不顯示的View釋放掉,緩解內存壓力。(注:不會調用dealloc方法,並非將UIViewController對象釋放,而是將控制器中的根視圖view對象釋放掉!)spa

2.若是不是當前顯示的UIViewController,都會自動進入viewWillUnload方法中,此方法中應該把UIViewController實例中的view屬性釋放掉,[super viewWillUnload]就行,(注意:在此方法和viewDidUnload方法中,不要再get到view屬性,由於如今view屬性爲nil,若是get,那麼又會進入loadView方法。)對象

3.釋放了view根視圖以後,會進入viewDidUnload方法,在此方法中除了調用父類的[super viewDidUnload]方法以外,還應該把UIViewController所擁有的子視圖,其它強引用的view(即本身聲明的subview屬性),若是是全局的subview,那麼不該該在別的地方釋放,而應該在viewDidUnload方法中release,若是是局部變量,能夠其它地方release。不該該在該方法中程序所需的數據,由於再次加載數據會耗費很長時間。blog

相關文章
相關標籤/搜索