iOS GCD實際項目運用

GCD的解釋及原理網(wǎng)上已經(jīng)有詳細(xì)的介紹了,這里我就只是把自己項目中常用到的記錄下來挟阻,如果大家有更多的項目運用衅枫,請留言,我會及時學(xué)習(xí)并摘錄進(jìn)來阅悍,讓不太喜歡理論而喜歡實際操作的人學(xué)到更多好渠。

1、耗時操作

場景:(1)耗時操作:數(shù)據(jù)量比較大节视,而我們不可能一直等數(shù)據(jù)請求完再來刷新UI

? ? ? ? ? ?(2)增量更新:先加載本地數(shù)據(jù)拳锚,再請求接口是否有更新,如果有更新寻行,請求數(shù)據(jù)后再回到主線程更新UI霍掺,同時更新數(shù)據(jù)庫

? ? ? ? ? ? (3)。。抗楔。棋凳。。连躏。

/**

*? 解決耗時操作 - UI + 數(shù)據(jù)請求

*/

-(void)demo1

{

? ? NSLog(@"star");

? ?dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

? ? ? ? //這里操作耗時的任務(wù) 不管block是否運行結(jié)束剩岳,都不會阻塞UI線程

? ? ? ? for (NSInteger i = 0; i < 10; i ++) {

? ? ? ? ? ? NSLog(@"你好");

? ? ? ? }

? ? ? ? // dispatch_async會向dispatch_get_global_queue全局隊列去添加新的任務(wù)

? ? ? ? //網(wǎng)絡(luò)請求

? ? ? ? //加載網(wǎng)絡(luò)圖片

? ? ? ? //數(shù)據(jù)解析

? ? ? ? dispatch_async(dispatch_get_main_queue(), ^{

? ? ? ? ? ? NSLog(@"執(zhí)行完了 - 刷新主線程");

? ? ? ? });

? ? });

? ? NSLog(@"end");

}

運行結(jié)果

2、多個接口操作

場景:(1)接口過多:現(xiàn)在一個接口越來越不能滿足一個界面的需求入热,通常需要多個接口來管理一個界面的UI(增量更新同樣可以用到

? ? ? ? ? ? (2)拍棕。。勺良。绰播。

/**

*? 多個耗時操作異步執(zhí)行? - 再去刷新UI

*/

-(void)demo2

{

? ? NSLog(@"star");

? ? //線程

? ? dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

? ? //創(chuàng)建分組

? ? dispatch_group_t group = dispatch_group_create();

? ? dispatch_group_async(group, queue, ^{

? ? ? ? for (NSInteger i = 0; i < 10; i ++) {

? ? ? ? ? ? NSLog(@"數(shù)據(jù)請求1");

? ? ? ? }

? ? });

? ? dispatch_group_async(group, queue, ^{

? ? ? ? for (NSInteger i = 0; i < 10; i ++) {

? ? ? ? ? ? NSLog(@"數(shù)據(jù)請求2");

? ? ? ? }

? ? });

? ? /**

? ? *? 回到主線程

? ? */

? ? dispatch_group_notify(group, dispatch_get_main_queue(), ^{

? ? ? ? NSLog(@"刷新UI");

? ? });

? ? NSLog(@"end");

}

運行結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市尚困,隨后出現(xiàn)的幾起案子蠢箩,更是在濱河造成了極大的恐慌,老刑警劉巖事甜,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谬泌,死亡現(xiàn)場離奇詭異,居然都是意外死亡逻谦,警方通過查閱死者的電腦和手機(jī)掌实,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來邦马,“玉大人贱鼻,你說我怎么就攤上這事∽探” “怎么了邻悬?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長随闽。 經(jīng)常有香客問我拘悦,道長,這世上最難降的妖魔是什么橱脸? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮分苇,結(jié)果婚禮上添诉,老公的妹妹穿的比我還像新娘。我一直安慰自己医寿,他們只是感情好栏赴,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著靖秩,像睡著了一般须眷。 火紅的嫁衣襯著肌膚如雪竖瘾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天花颗,我揣著相機(jī)與錄音捕传,去河邊找鬼。 笑死扩劝,一個胖子當(dāng)著我的面吹牛庸论,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播棒呛,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼聂示,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了簇秒?” 一聲冷哼從身側(cè)響起鱼喉,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趋观,沒想到半個月后扛禽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡拆内,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年旋圆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片麸恍。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡灵巧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抹沪,到底是詐尸還是另有隱情刻肄,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布融欧,位于F島的核電站敏弃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏噪馏。R本人自食惡果不足惜麦到,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望欠肾。 院中可真熱鬧瓶颠,春花似錦、人聲如沸刺桃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桃移,卻和暖如春屋匕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背借杰。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工过吻, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人第步。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓疮装,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粘都。 傳聞我的和親對象是個殘疾皇子廓推,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容