1. 程式人生 > >初始化一個控制器時需要注意的事情

初始化一個控制器時需要注意的事情

問題一:看到很多剛開始寫iOS的人,喜歡在控制器的init方法裡寫一些像:self.navigationItem.title = @"xxx";self.view.backgroundColor = [UIColor whiteColor];等之類的方法,很不推薦這樣寫,理由有二:

1,首先,從別處初始化本控制器時,剛剛init時並沒有初始化出來檢視什麼的,只是開闢了一塊小記憶體出來,用來記錄和儲存本控制器,這是為了什麼時候需要什麼時候再真正去實現它,從而保證了低記憶體。試想,如果一個控制器持有了好多其他控制器的例項(已屬性的形式),那麼如果都在實現狀態的話,就等於開闢了這麼多記憶體出來,顯然是不能接受的。

2,其次,會導致一些其他的問題,比如:我初始化一個控制器時,需要對其傳參,然後在其viewdidload裡面用引數請求網路資料。如果在跳轉之前的init時,就已經開始訪問檢視屬性,那麼就會走viewdidload,然而,這時還沒有把引數傳給本控制器,導致請求時引數為空,如果不加判斷,就可能導致崩潰

綜上,不建議在init方法裡訪問本控制器檢視屬性。

二:總結中。。。。