iOS 通知

要了解通知、KVO、代理的區(qū)別,合理利用。

[A]通知是什么:

通知(NSNotification)是iOS的一種設(shè)計模式,觀察者Observer模式。

[B]通知的作用:

可以在一個應(yīng)用中的多個對象之間進(jìn)行通信傳遞數(shù)據(jù)。

【注:經(jīng)常提到的通知,有“廣播通知”、“本地通知”、“推送通知”

本文所介紹的就是廣播通知,是實現(xiàn)觀察者模式的一種機制,可以在一個應(yīng)用中的多個對象之間進(jìn)行通信傳遞數(shù)據(jù)。

而本地通知和推送通知主要是給用戶發(fā)送“通知提示”,例如警告提示、聲音、震動以及如圖標(biāo)上的紅色數(shù)字提示。

第一種由“本地發(fā)送通知”給用戶,第二種由第三方應(yīng)用發(fā)送給蘋果官方的遠(yuǎn)程服務(wù)器,然后再由服務(wù)器“推送通知”給用戶。】

[C]通知實現(xiàn)方法:

1.注冊通知

- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable NSString *)aName object:(nullable id)anObject;

//@selector中為回調(diào)方法,在本類中對通知進(jìn)行相應(yīng)的處理,name為通知名稱、object為對象;

完整的添加觀察者過程為:

if([observer respondsToSelector:@selector(MyMethod:)]) {[[NSNotificationCenterdefaultCenter] addObserver:observer selector:@selector(MyMethod:) name:NSWindowDidBecomeMainNotificationobject:nil];}

當(dāng)然在蘋果API中也有另外一個注冊觀察者的方法:

- (id)addObserverForName:(nullableNSString*)name object:(nullableid)obj queue:(nullableNSOperationQueue*)queue usingBlock:(void(^)(NSNotification*note))block

此方法是支持在該方法中進(jìn)行block回調(diào)的,而queue參數(shù)就是表示此模塊在queue隊列中進(jìn)行。

2.發(fā)布者的類發(fā)布通知

可以使用一下三個方法:

- (void)postNotification:(NSNotification*)notification;- (void)postNotificationName:(NSString*)aNameobject:(id)anObject;- (void)postNotificationName:(NSString*)aNameobject:(id)anObject userInfo:(NSDictionary*)aUserInfo;

postNotificationName:指定消息名稱;

object:指定發(fā)消息者;

userInfo:通知中用于傳遞參數(shù)的載體,傳遞的方法是把參數(shù)放在NSDictionary類型的userInfo中。例如:NSDictionary *dict = [notification userInfo];

一般使用第三個方法,如果參數(shù)不需要的,可以設(shè)置為nil.

3.移除通知

//釋放所有通知

- (void)removeObserver:(id)observer;

//釋放名稱為aName的通知

- (void)removeObserver:(id)observer name:(nullable NSString *)aName object:(nullable id)anObject;

[D]有用的系統(tǒng)通知

UIApplicationDidFinishLaunchingNotification? // 應(yīng)用程序啟動后

UIApplicationDidBecomActiveNotification? ? ? //進(jìn)入前臺

UIApplicationWillResignActiveNotification? ? //應(yīng)用將要進(jìn)入后臺

UIApplicationDidEnterBackgroundNotification? //進(jìn)入后臺

UIKeyboardWillShowNotification? ? ? // 鍵盤即將顯示

UIKeyboardDidShowNotification? ? ? ? // 鍵盤顯示完畢

UIKeyboardWillHideNotification? ? ? // 鍵盤即將隱藏

UIKeyboardDidHideNotification? ? ? ? // 鍵盤隱藏完畢

本文參考自:http://www.lxweimin.com/p/91011457bd75

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,885評論 6 541
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,312評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,993評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,667評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,410評論 6 411
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,778評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,775評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,955評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,521評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,266評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,468評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,998評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,696評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,095評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,385評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,193評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,431評論 2 378

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

  • iOS 提供了一種 “同步的” 消息通知機制NSNotificationCenter,觀察者只要向消息中心注冊, ...
    MasterChen閱讀 2,233評論 4 16
  • 前序 通知在我看來,有好處也有壞處。用好了那就是翻云復(fù)海,上天入地,無所不能。什么傳值、傳遞動作就是一句話:天氣飄...
    沉默學(xué)飛翔閱讀 10,489評論 30 38
  • 通知機制 iOS程序內(nèi)部通信機制.通知機制和委托機制不同,前者是一對多的對象之間的通信,后者是一對一的對象之間的通...
    果啤閱讀 1,478評論 0 2
  • 概述 在多數(shù)移動應(yīng)用中任何時候都只能有一個應(yīng)用程序處于活躍狀態(tài),如果其他應(yīng)用此刻發(fā)生了一些用戶感興趣的那么通過通知...
    莫離_焱閱讀 6,540評論 1 8
  • 今天早上,我正在房間里碼字,忽然有人撥弄我的窗戶,我問: “是誰?” 那人好像沒有聽到,我打開窗戶上的月牙鎖,這才...
    小棕櫚閱讀 330評論 0 0