一金砍、Block
block的代碼是內(nèi)聯(lián)的,效率高于函數(shù)調(diào)用
block對于外部變量默認是只讀屬性
block被Objective-C看成是對象處理
iOS開發(fā)-由淺至深學習block - 簡書 (jianshu.com)
(16條消息) iOS Block用法和實現(xiàn)原理_jeffasd的專欄-CSDN博客
二麦锯、多線程編程
GCD
使用步驟其實很簡單恕稠,只有兩步:
創(chuàng)建一個隊列(串行隊列或并發(fā)隊列);
將任務追加到任務的等待隊列中扶欣,然后系統(tǒng)就會根據(jù)任務類型執(zhí)行任務(同步執(zhí)行或異步執(zhí)行)鹅巍。
iOS 多線程:『GCD』詳盡總結 - 簡書 (jianshu.com)
NSThread
可以直接操作線程對象。不過也需要需要程序員自己管理線程的生命周期(主要是創(chuàng)建)料祠,
iOS 多線程:『pthread骆捧、NSThread』詳盡總結 - 簡書 (jianshu.com)
NSOperationQueue
NSOperation、NSOperationQueue 是基于 GCD 更高一層的封裝髓绽,完全面向?qū)ο罅参5潜?GCD 更簡單易用、代碼可讀性也更高梧宫。
為什么要使用 NSOperation接谨、NSOperationQueue?
1.可添加完成的代碼塊塘匣,在操作完成后執(zhí)行。
2.添加操作之間的依賴關系巷帝,方便的控制執(zhí)行順序忌卤。
3.設定操作執(zhí)行的優(yōu)先級。
4.可以很方便的取消一個操作的執(zhí)行楞泼。
5.使用 KVO 觀察對操作執(zhí)行狀態(tài)的更改:isExecuteing驰徊、isFinished、isCancelled堕阔。
iOS 多線程:『NSOperation棍厂、NSOperationQueue』詳盡總結 - 簡書 (jianshu.com)