UIViewController 生命週期中的一些問題

UIViewController的生命週期中,有如下的一些特性;

  1. 當初始化的時候直接調用它的init方式後,如果實現類重寫了init方法,那麼在執行[super init]方法後,會首先執行他的initWithNibName:bundle:方法。如果沒有實現init方法那就會直接調用initWithNibName:bundle:方法;
  2. 在執行loadView方法之前,UIViewController實例裏的_view屬性是nil。如果想初始化的話,就要調用他的[super loadView]方法,或者自己創建一個UIView,然後給他自身的_view賦過去。
  3. _view當爲nil的時候,在實例中通過getter方法獲取view,比如self.view,就會自動的調用loadView方法。這就有可能有個問題,就是假設在init使用了self.view方法,但是未在loadView方法中是用[super loadView]或者給_view賦值。那麼就會產生循環引用的問題。
  4. 在iOS6之前,如果發生內存警告會調用viewWillUnload和viewDidUnload這兩個方法,而在iOS6以後就只調用didReceiveMemoryWarning這一個方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章