簡單實現iOS通知中心的功能

2021-08-08 06:44:39 字數 1170 閱讀 7301

ios自帶的nsnotification在日常使用中如果註冊完不removeobserver的話會引發crash,開發者在開發過程中往往由於自己的疏忽而忘記寫removeobserver,尤其在**重構過程中很容易忽略掉.那麼有沒有好的辦法自己實現一套通知中心的功能,而不用在observer的dealloc函式中removeobserver呢?

ios中有乙個類nspointerarray弱引用陣列,對新增到其中的類不強引用,如果物件銷毀,那麼nspointerarray陣列中對應的項變為nil,到這裡你有想法了沒有?

根據這個思路我簡單寫了點**實現iosnsnotification的功能,pwfnotification原始碼位址**已經提交到github上.下面簡單介紹乙個如何使用,使用者可以在自己的工程podfile中加上:

pod 'pwfnotification'
就可以把原始碼加到自己的工程中.你可以通過下面的方法註冊pwfnotification:

- (void)pwf_addobserver:(id)observer selector:(sel)aselector name:(nsstring *)aname object:(id)anobject;
在發通知的時候可以呼叫pwfnotificationcenter的下面三個方法之一:

- (void)pwf_postnotificationname:(nsstring *)aname object:(id)object userinfo:(nsdictionary *)auserinfo;

- (void)pwf_postnotificationname:(nsstring *)aname object:(id)object;

- (void)pwf_postnotificationname:(nsstring *)aname;

pwfnotification同時支援在主線程發通知:

[pwfnotificationcenter defaultcenter].postnotificationinmainthread =yes;

iOS開發之通知中心

ios開發過程中,一定要涉及到通知中心和觀察者兩種開發模式。現在講明一些通知中心的簡單應用。通知中心接收事件,盡量有新增就要有刪除,object是相互傳遞的引數 nsnotificationcenter defaultcenter addobserver self selector selector...

ios中的夜間模式(通知中心)

這個夜間模式不是顏色反轉的那種,其實很簡單,就是在window上面鋪了一層view,把這個view的變成黑色,在調一下透明度就ok了,下面給大家看看 實現吧 instancetype init return self void receivenotifica nsnotification cente...

《iOS開發筆記 通知中心》

通知中心的應用步驟 1 註冊通知的觀察者 一般在 viewdidload 中註冊觀察者 2 發布通知 3 登出觀察者 通知和 的選擇 1 共同點 利用通知和 都能完成物件之間的通訊 比如a物件告訴 d物件發生了什麼事情 a物件傳遞資料給d物件 2 不同點 一對一關係 1個物件只能告訴另 1個物件發生...