知識小總結(jié)八 (VC的view屬性,APP生命周期)??

視圖控制器獲取view的步驟


view是視圖控制器的一個屬性,因為view需要占用較大的內(nèi)存,所以只有當view需要顯示時,才會對其進行加載(即懶加載)。

一旦控制器的view屬性被創(chuàng)建,viewDidLoad方法就會調(diào)用(且只調(diào)用一次),可以在該方法里對視圖進行修改,或者其他數(shù)據(jù)的初始化。但是,此時view的window屬性為nil,也就是說視圖還沒有真正的顯示,所以,不應該在此方法中對視圖的大小尺寸等進行修改。

總結(jié)

當視圖控制器第一次使用view時,loadView總是會被調(diào)用
如果我們重寫loadView,我們必須用代碼設置view
如果我們沒有重寫loadView,視圖控制器會調(diào)用默認的loadView實現(xiàn)方法——先嘗試去nib文件加載view,如果沒有,會設置為一個通用的UIView對象

應用程序的狀態(tài)

APP的狀態(tài)有
Not running未運行: 程序沒啟動。
Inactive未激活: 程序在前臺運行,不過沒有接收到事件。在沒有事件處理情況下程序通常停留在這個狀態(tài)。
Active激活: 程序在前臺運行而且接收到了事件。這也是前臺的一個正常的模式。
Backgroud后臺: 程序在后臺而且能執(zhí)行代碼,大多數(shù)程序進入這個狀態(tài)后會在在這個狀態(tài)上停留一會。時間到之后會進入掛起狀態(tài)(Suspended)。有的程序經(jīng)過特殊的請求后可以長期處于Backgroud狀態(tài)。
Suspended掛起: 程序在后臺不能執(zhí)行代碼。系統(tǒng)會自動把程序變成這個狀態(tài)而且不會發(fā)出通知。當掛起時,程序還是停留在內(nèi)存中的,當系統(tǒng)內(nèi)存低時,系統(tǒng)就把掛起的程序清除掉,為前臺程序提供更多的內(nèi)存。

于APP狀態(tài)相關(guān)的使用

在APPDelegate文件中,可得到各運行狀態(tài)代理的回調(diào),最常用的有
application:didFinishLaunchingWithOption: 啟動基本完成程序準備開始運行
applicationWillResignActive: 當應用程序?qū)⒁敕腔顒訝顟B(tài)執(zhí)行
applicationDidBecomeActive: 當應用程序進入活動狀態(tài)執(zhí)行
application:DidEnterBackground: 當程序被推送到后臺的時候調(diào)用
applicationWillTerminate: 當程序?qū)⒁顺鰰r被調(diào)用

當應用程序進入后臺時,我們應該做些什么?

保存用戶數(shù)據(jù)或狀態(tài)信息,所有沒寫到磁盤的文件或信息,在進入后臺時,最后都寫到磁盤去,因為程序可能在后臺被殺死。

盡可能多的釋放內(nèi)存,因為當內(nèi)存不足時,會終止一些掛起的程序來回收內(nèi)存,那些內(nèi)存最大的程序首先被終止。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容