- 單例模式
- 代理模式
- 觀察者模式
- 工廠模式
單例模式
load: 當(dāng)類加載到OC運(yùn)行時(shí)環(huán)境中(內(nèi)存), 掉會調(diào)用一次, 程序一起動就會調(diào), 程序運(yùn)行過程中只會調(diào)一次
如果類沒有被引用進(jìn)項(xiàng)目,就不會有l(wèi)oad調(diào)用;但即使類文件被引用進(jìn)來叁征,但是沒有使用,那么initialize也不會被調(diào)用意鲸。
使用NSOperation的子類方式有三種: (類似于GCD的任務(wù))
- NSInvocationOperation
- NSBlockOperation
- 自定義類繼承NSOperation, 實(shí)現(xiàn)內(nèi)部方法
NSInvocationOperation的子類對象直接調(diào)用start, 不手動加入隊(duì)列里面, 是在當(dāng)前線程同步執(zhí)行, 只有手動加入隊(duì)列才會自動異步執(zhí)行
NSBlockOperation不手動放入隊(duì)列調(diào)用start 任務(wù)數(shù)量 > 1 才會異步并發(fā)執(zhí)行(另外開線程)
[NSOperationQueue mainQueue] 主隊(duì)列
隊(duì)列最大并發(fā)數(shù): 同時(shí)最多有多少個一起執(zhí)行, 可以節(jié)省內(nèi)存空間
NSOperationQueue里面的operaton對象可以添加依賴, 但是不能相互依賴, 除了同一個隊(duì)列里面的operation之間可以依賴, 不同隊(duì)列之間的operation也可以添加依賴
等operation執(zhí)行完了再執(zhí)行其他的操作: setCompletionBlock:
相對GCD更加的面向?qū)ο?/p>