ios學習筆記之ios應用生命周期及Viewcontroller生命周期簡記

ios 應用生命周期

? ? 如上圖所示,ios有五種不同的生命周期狀態(tài),不同的狀態(tài)間有著不同的關系。

這五種狀態(tài)分別是:

1.Not Running(非運行狀態(tài)。 ?指應用沒有運行或被系統(tǒng)終止)

2.Inactive (前臺非活動狀態(tài)。 ?指應用正在進入前臺狀態(tài),但是還不能接受事件處理)

3.Active(前臺活動狀態(tài)。 ?指應用進入前臺狀態(tài),能接受事件處理)

4.Background(后臺狀態(tài)。 ?指應用進入后臺后,依然能夠執(zhí)行代碼。如果有可執(zhí)行的代碼就會執(zhí)行代碼,如果沒有可執(zhí)行的代碼或者將可執(zhí)行的代碼執(zhí)行完畢,應用會馬上 進入掛起狀態(tài))

5.Suspended(掛起狀態(tài)。 ?指應處于掛起的應用進入一種“冷凍”的狀態(tài),不能執(zhí)行代碼。如果系統(tǒng)內存不夠,應用會被終止)

這五種狀態(tài)在應用的使用過程中,會依據(jù)實際的使用場景,出現(xiàn)對應的生命周期狀態(tài)躍遷的變化,在應用生命周期狀態(tài)躍遷的過程 中,iOS系統(tǒng)會回調應用程序的委托對象,APPDelegate類中的不同方法,同時會發(fā)出相應的通知。詳情參考下圖:


應用狀態(tài)躍遷對應事件

ViewController生命周期

alloc -> initWithNibName -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear -> dealloc

注意viewWillUnload和viewDidUnload已經在ios6被廢棄了,因為Clearing references to views is no longer necessary。

注意1.沒有viewWillLoad。

注意2.viewDidLoad和viewDidUnload并不是成對的。

具體流程可參考下圖:


VC生命周期


更加詳細介紹,可參考生命周期 - 簡書

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容