NSNotification是同步還是異步?和delegate相比有什么區(qū)別,效率呢?

1、NSNotification是同步還是異步?
默認(rèn)情況下拧簸,創(chuàng)建的NSNotification是同步的秒紧,
發(fā)布通知

[[NSNotificationCenter defaultCenter] postNotificationName:@"clickBtn" object:nil];

接收通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(click111) name:@"clickBtn" object:nil];
- (void)click111
{
        sleep(3);
        NSLog(@"通知執(zhí)行完畢");
}

執(zhí)行結(jié)果

2016-10-14 16:57:50.595 InterviewDemo[8682:2263688] 開始發(fā)布通知
2016-10-14 16:57:53.597 InterviewDemo[8682:2263688] 通知執(zhí)行完畢
2016-10-14 16:57:53.598 InterviewDemo[8682:2263688] 執(zhí)行完畢了通知

通過這里的時間間隔可以看出,在拋出通知以后凛剥,觀察者在通知事件處理完成以后(這里我們休眠3秒),拋出者才會往下繼續(xù)執(zhí)行轻姿,也就是說這個過程默認(rèn)是同步的犁珠;當(dāng)發(fā)送通知時,通知中心會一直等待所有的observer都收到并且處理了通知才會返回到poster互亮;

那能不能當(dāng)成異步處理呢犁享?
兩種方法:
第一種方法,發(fā)布通知的時候搞在子線程中豹休,當(dāng)然了炊昆,接收方法觸發(fā)的也是在子線程中

 dispatch_async(dispatch_get_global_queue(0, 0), ^{
        [[NSNotificationCenter defaultCenter] postNotificationName:@"clickBtn" object:nil];
    });

第二種方法,接收方法在子線程中執(zhí)行

- (void)click111
{
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
    
        sleep(3);
        NSLog(@"通知執(zhí)行完畢");
    });
}

2威根、NSNotification和delegate相比有什么區(qū)別
1>NSNotification是一對多的關(guān)系凤巨,不需要兩個之間建立什么聯(lián)系,類似于一種廣播似的發(fā)送消息洛搀,接受者只要是聲明了接收信息敢茁,就能接收。消息接受者通過keyPath的方式指定需要接受的消息類型留美,通常在對象初始化完成以后聲明開始接受消息彰檬,在對象被銷毀前注銷接受消息伸刃。
NSNotification發(fā)布一個廣播的通知。(面向所有的類)逢倍,當(dāng)有誰需要這個通知的話捧颅,就注冊成為它的會員(會員存在Array里)。notification通過管理array來實(shí)現(xiàn)事件的操作较雕。
當(dāng)哪個 會員 什么時候不需要再成為會員的時候碉哑,就需要注銷(在dealloc里釋放)
2>delegate是一對一的關(guān)系,首先兩個要建立聯(lián)系郎笆,才能進(jìn)行相應(yīng)的傳值回調(diào)動作谭梗。

3、效率哪個更高
效率肯定是delegate比NSNotification高宛蚓。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末激捏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凄吏,更是在濱河造成了極大的恐慌远舅,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痕钢,死亡現(xiàn)場離奇詭異图柏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)任连,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門蚤吹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人随抠,你說我怎么就攤上這事裁着。” “怎么了拱她?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵二驰,是天一觀的道長。 經(jīng)常有香客問我秉沼,道長桶雀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任唬复,我火速辦了婚禮矗积,結(jié)果婚禮上敞咧,老公的妹妹穿的比我還像新娘漠魏。我一直安慰自己,他們只是感情好妄均,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布柱锹。 她就那樣靜靜地躺著,像睡著了一般丰包。 火紅的嫁衣襯著肌膚如雪禁熏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天邑彪,我揣著相機(jī)與錄音瞧毙,去河邊找鬼。 笑死寄症,一個胖子當(dāng)著我的面吹牛宙彪,可吹牛的內(nèi)容都是我干的麦撵。 我是一名探鬼主播鸿吆,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼望门!你這毒婦竟也來了篮迎?” 一聲冷哼從身側(cè)響起男图,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甜橱,沒想到半個月后逊笆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岂傲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年难裆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镊掖。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡乃戈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出堰乔,到底是詐尸還是另有隱情偏化,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布镐侯,位于F島的核電站侦讨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苟翻。R本人自食惡果不足惜韵卤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望崇猫。 院中可真熱鬧沈条,春花似錦、人聲如沸诅炉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至月而,卻和暖如春汗洒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背父款。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工溢谤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人憨攒。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓世杀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肝集。 傳聞我的和親對象是個殘疾皇子瞻坝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

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