建好項(xiàng)目之后

在項(xiàng)目的左邊,我們可以看到一大堆東西,基本上我也不太了解,哈。
LaunchScreen.xib是改變打開應(yīng)用后顯示的開場畫面的。
Images.xcassets是用來集中堆放資源文件的。
Main.storyboard這個就是傳說中的故事板了,基本只用來做過原型設(shè)計(jì)。
main.m入口文件。
AppDelegate用于監(jiān)聽這個應(yīng)用的生命周期內(nèi)的各種事件。
iOS的文件系統(tǒng)
在這里扯下閑篇,加深對iOS運(yùn)行的了解。
每個iOS應(yīng)用都有著屬于自己的沙盒系統(tǒng)、sandbox。每個應(yīng)用都只在自己的沙盒系統(tǒng)里面運(yùn)行,與系統(tǒng)隔絕開來。
Application bundle(應(yīng)用程序包)在每個應(yīng)用里面,都有大量的應(yīng)用程序包,里面存放著各種應(yīng)用在運(yùn)行期間需要的資源文件。而應(yīng)用的主程序包和入口一樣,也都只有一個。
應(yīng)用會動態(tài)將包里面的資源文件加載到內(nèi)存里面,然后通過NSBundle、CFBundleRef定位程序包中的資源。
我們經(jīng)常會看到一些App第一次登陸后,再次打開應(yīng)用就不需要手動登陸了。這個是怎么實(shí)現(xiàn)的呢?
接觸過Web前端開發(fā)的一定不會對Cookies陌生。在iOS里面,實(shí)現(xiàn)的原理跟Cookies也是類似的,都是將信息寫入前端文件系統(tǒng)里面,每次重加載就會在這些文件里面讀取內(nèi)容。
Library/Preferences(偏好文件設(shè)置)存放了應(yīng)用的偏好設(shè)置信息,NSUserDefaults就是對這些文件進(jìn)行讀寫操作

AppDelegate的故事
AppDelegate負(fù)責(zé)了整個應(yīng)用的生命周期的監(jiān)聽,他里面自然有著很多不為人知或者已被世人熟悉的故事。
他目睹了應(yīng)用的生老病死,一直不離不棄,真的是一段可歌可泣的單戀情史啊,請容許我在此默哀一下下。

在頭文件里面,成員變量只有一個。繼承了UIResponder類,并且拓展了UIApplicationDelegate接口。

在新建完項(xiàng)目之后,這里面的注釋已經(jīng)說明了這些方法到底有什么用,和怎么用了。
這里還是稍稍翻譯一下好了。
didFinishLaunchingWithOptions:
這個方法會在應(yīng)用啟動后執(zhí)行一次,而且只會在生命周期內(nèi)執(zhí)行一次。
在這里常見到的就是,通知的初始化啊、網(wǎng)絡(luò)狀態(tài)的獲取啊、根視圖的設(shè)置啊之類的。
applicationWillResignActive:
在應(yīng)用將要失去焦點(diǎn)的時候執(zhí)行。亦即是,當(dāng)我將通知中心拉下來的之后,整個APP就會被掛起,然后APP就會失去當(dāng)前焦點(diǎn)而執(zhí)行這個方法。
失去焦點(diǎn)可以做的效果就多了。譬如iOS自帶的,在長按應(yīng)用圖標(biāo)之后,他們就會抖動起來,而把通知中心拉下來,失去了焦點(diǎn),就可以讓圖標(biāo)的抖動停下來。
applicationDidEnterBackground:
在應(yīng)用進(jìn)入后臺的時候執(zhí)行。亦即是,當(dāng)我按下了Home鍵,APP會先執(zhí)行上面的applicationWillResignActive然后就APP就會進(jìn)入后臺并執(zhí)行該方法。
進(jìn)入后臺后,我們可以更改APP在多任務(wù)欄時顯示的畫面,就不讓你看到APP里面的內(nèi)容!
applicationWillEnterForeground:
在應(yīng)用回到前臺時執(zhí)行。與上面進(jìn)入后臺相反,從多任務(wù)欄點(diǎn)選了APP之后,APP會重新回到前臺,然后就會執(zhí)行該方法。
進(jìn)入前臺就調(diào)用鎖屏什么的,可以參考某支付工具。
applicationDidBecomeActive:
在應(yīng)用重新獲得焦點(diǎn)時執(zhí)行。續(xù)上面的方法,APP回到前臺之后,就會重新獲得焦點(diǎn),便會執(zhí)行該方法。(上面通知中下拉下來后,APP失去焦點(diǎn)。在關(guān)閉通知中心后,APP會重獲焦點(diǎn))
和上面的差不多。
applicationWillTerminate:
在應(yīng)用結(jié)束的時候執(zhí)行。APP在多任務(wù)欄被結(jié)束的時候就會執(zhí)行這個方法。
