uiviewcontroller的生命週期
關於viewdidunload :在發生記憶體警告的時候如果本檢視不是當前螢幕上正在顯示的檢視的話, viewdidunload將會被執行,本檢視的所有子檢視將被銷毀,以釋放記憶體,此時開發者需要手動對viewload、viewdidload中建立的物件釋放記憶體。 因為當這個檢視再次顯示在螢幕上的時候,viewload、viewdidload 再次被呼叫,以便再次構造檢視。
- (void)viewdidload;
- (void)viewdidunload;
在記憶體足夠的情況下,軟體的檢視通常會一直儲存在記憶體中,但是如果記憶體不夠,一些沒有正在顯示的viewcontroller就會收到記憶體不夠的警告,然後就會釋放自己擁有的檢視,以達到釋放記憶體的目的。但是系統只會釋放記憶體,並不會釋放物件的所有權,所以通常我們需要在這裡將不需要在記憶體中保留的物件釋放所有權,也就是將其指標置為nil。
這個方法通常並不會在檢視變換的時候被呼叫,而只會在系統退出或者收到記憶體警告的時候才會被呼叫。但是由於我們需要保證在收到記憶體警告的時候能夠對其作出反應,所以
這個方法通常我們都需要去實現。
系統在載入所有資料後,將會在螢幕上顯示檢視,這時會先呼叫這個方法。通常我們會利用這個方法,對即將顯示的檢視做進一步的設定。例如,我們可以利用這個方法來設定裝置不同方向時該如何顯示。
所以這個方法也非常常用。
在檢視變換時,當前檢視在即將被移除、或者被覆蓋時,會呼叫這個方法進行一些善後的處理和設定。
我們可以重寫這個方法,對已經消失,或者被覆蓋,或者已經隱藏了的檢視做一些其他操作。
程式的生命週期
1,
告訴**程序啟動但還沒進入狀態儲存
2,告訴**啟動基本完成程式準備開始執行
3,當應用程式將要進入活動狀態執行,在此期間,應用程式不接收訊息或事件
}4,當應用程式進入活動狀態執行
}5,當程式被推送到後台的時候呼叫。所以要設定後台繼續執行,則在這個函式裡面設定
}6,當程式從後台將要重新回到前台時候呼叫
}7,當程式將要退出時被呼叫,通常是用來儲存資料和一些退出前的清理工作
}8,當程式載入後執行}
iOS 生命週期
在init方法中例項化必要的物件 遵從lazyload思想 init方法中初始化viewcontroller本身 當view需要被展示而它卻是nil時,viewcontroller會呼叫該方法。不要直接呼叫該方法。如果手工維護views,必須過載重寫該方法 如果使用ib維護views,必須不能過載重...
iOS 生命週期
物件的生命週期一直是開發者所需要關心的,教授 cs193p 的老師 paul 也詳細的講述了 uiviewcontroller 的生命週期。為了記述這一過程,故作此文。由於 xcode 提供了純 和 storyboard xib 同理 兩種布局 ui 的方式,因此初始化部分略有不同。為了方便觀察,我...
iOS 程式生命週期
狀態名解釋 not running 應用還沒啟動或者應用發生中斷 inactive 應用正在前台執行 不接收事件 active 應用正在前台執行 接收事件 background 應用處於後台執行 程式在後台而且能執行 大多數程式進入這個狀態後會在在這個狀態上停留一會。時間到之後會進入掛起狀態 sus...