通知中心

每個應用中只會有一個通知中心對象:NSNotificationCenter,通過單例方法,創(chuàng)建唯一對象,通知中心對象負責管理所有的通知,包括通知的發(fā)出和管理“通知監(jiān)聽者”。

無論是通知發(fā)布者、還是通知的監(jiān)聽者,都是通過通知中心發(fā)布通知、設置監(jiān)聽者。

發(fā)布通知

方法:

postNotificationName:<#(nonnull NSString *)#> object:<#(nullable id)#> userInfo:<#(nullable NSDictionary *)#>

舉例:

name:通知的名字(監(jiān)聽者就是通過這個名字來判斷是否是自己需要監(jiān)聽的通知)

object:誰發(fā)布的通知

userInfo:通知的內容(這里面包含了通知的內容)

[[NSNotificationCenter defaultCenter] postNotificationName:@“通知的名字” ? object: obj1 userInfo:@{} ];

設置監(jiān)聽者

方法:

addObserver:<#(nonnull id)#> selector:<#(nonnull SEL)#> name:<#(nullable NSString *)#> object:<#(nullable id)#>

舉例:

observer:監(jiān)聽者

selector:監(jiān)聽者需要執(zhí)行的方法

name:通知的名字

object:監(jiān)聽那個對象

[[NSNotificationCenter defaultCenter] addobsever:obj1 selector:(action:) nam:@“通知的名字” object:obj2];

用戶設備的狀態(tài)改變的時候會向通知中心發(fā)出的通知:

鍵盤在狀態(tài)改變的時候會向通知中心發(fā)出的通知:

為了防止在監(jiān)聽者對象銷毀的時候,監(jiān)聽中心仍然有這個監(jiān)聽者,從而當其監(jiān)聽的某個通知發(fā)生的時候,向一個已經銷毀的對象發(fā)送通知,需要在對象銷毀的時候,從通知中心把對應的監(jiān)聽者同時刪除,需要重寫:-(void)dealloc:

-(void)dealloc{

[[NSNotificationCenter defaultCenter] removeobsever]; //在對象銷毀的時候同時從通知中心中刪除監(jiān)聽者對象。

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容