1喇完,描述ios app的生命周期和狀態(tài)
1)讨彼,Not running 未運(yùn)行 程序沒啟動(dòng)
2),Inactive 未激活 程序在前臺(tái)運(yùn)行甚疟,不過沒有接收到事件茫陆。在沒有事件處理情況下程序通常停留在這個(gè)狀態(tài)
3)金麸,Active 激活 程序在前臺(tái)運(yùn)行而且接收到了事件。這也是前臺(tái)的一個(gè)正常的模式
4)簿盅,Backgroud 后臺(tái) 程序在后臺(tái)而且能執(zhí)行代碼挥下,大多數(shù)程序進(jìn)入這個(gè)狀態(tài)后會(huì)在在這個(gè)狀態(tài)上停留一會(huì)。時(shí)間到之后會(huì)進(jìn)入掛起狀態(tài)(Suspended)挪鹏。有的程序經(jīng)過特殊的請(qǐng)求后可以長(zhǎng)期處于Backgroud狀態(tài)
5)见秽,Suspended 掛起 程序在后臺(tái)不能執(zhí)行代碼。系統(tǒng)會(huì)自動(dòng)把程序變成這個(gè)狀態(tài)而且不會(huì)發(fā)出通知讨盒。當(dāng)掛起時(shí)解取,程序還是停留在內(nèi)存中的,當(dāng)系統(tǒng)內(nèi)存低時(shí)返顺,系統(tǒng)就把掛起的程序清除掉禀苦,為前臺(tái)程序提供更多的內(nèi)存。
3遂鹊,+(void)load +(void)initialize振乏; 有什么用處
兩個(gè)方法都可以進(jìn)行一些類的初始化操作。其中有些小區(qū)別秉扑。
+(void)load 方法只要加入了工程中慧邮,進(jìn)行了編譯调限,且.m中實(shí)現(xiàn)了這個(gè)方法,都會(huì)調(diào)用一次误澳,值得注意的時(shí)沒實(shí)現(xiàn)的子類是不會(huì)調(diào)用的耻矮,就算父類實(shí)現(xiàn)了也不行。
+(void)initialize 在發(fā)送第一條消息給類的時(shí)候進(jìn)行調(diào)用忆谓,跟load方法的不同之處在于裆装,比較遲,可實(shí)現(xiàn)懶加載倡缠,且父類.m實(shí)現(xiàn)了該方法哨免,子類不實(shí)現(xiàn)也會(huì)調(diào)用父類,跟正常的方法一樣昙沦。categories琢唾,都實(shí)現(xiàn)了這個(gè)方法,只會(huì)調(diào)用其中一個(gè)桅滋,具有不確定性慧耍。
6、類別和類擴(kuò)展的區(qū)別
*可以進(jìn)行一些類的初始化操作
+(void)load 方法只要加入了工程中丐谋,進(jìn)行了編譯,且.m中實(shí)現(xiàn)了這個(gè)方法煌珊,都會(huì)調(diào)用一次号俐,值得注意的時(shí)沒實(shí)現(xiàn)的子類是不會(huì)調(diào)用的,就算父類實(shí)現(xiàn)了也不行定庵。 *
category和extension區(qū)別
category: 類別吏饿,分類
專門用來給類添加新的方法,不能給類添加成員屬性蔬浙,添加了成員變量猪落,也無法取到
注意:其實(shí)可以通過runtime給分類添加屬性
分類中用@property定義變量,只會(huì)生成變量的getter畴博,setter方法的聲明笨忌,不能生成方法實(shí)現(xiàn)和帶下劃線的成員變量。
extension:類擴(kuò)展
可以說成是特殊的分類俱病,也稱作匿名分類官疲,可以給類添加成員屬性,但是是私有變量亮隙,可以給類添加方法途凫,也是私有方法
加載時(shí)機(jī):
category加載,把category的實(shí)力方法溢吻,協(xié)議维费,已經(jīng)屬性添加到類上,把類方法和協(xié)議添加到metaclass
分類加載和方法調(diào)用順序
加載:先加載原類的+load方法,再加載分類的+load方法犀盟,若多個(gè)分類而晒,則據(jù)編譯順序加載
調(diào)用:先調(diào)用分類的方法,再調(diào)用原類的方法且蓬,分類方法會(huì)覆蓋原類的方法
7欣硼,block有幾種類型?分別是什么恶阴?
根據(jù)isa指針诈胜,block一共有3種類型的block
_NSConcreteGlobalBlock 全局靜態(tài)
_NSConcreteStackBlock 保存在棧中,出函數(shù)作用域就銷毀
_NSConcreteMallocBlock 保存在堆中冯事,retainCount == 0銷毀
二焦匈,
1,單鏈表反轉(zhuǎn)
2昵仅,設(shè)計(jì)一個(gè)網(wǎng)絡(luò)數(shù)據(jù)庫