欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ios NSNotificationCenter通知的簡單使用

 更新時(shí)間:2018年06月07日 11:04:36   作者:墨_辰  
這篇文章主要介紹了ios NSNotificationCenter通知的簡單使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

通知類本身比較簡單,大概就分為注冊(cè)通知監(jiān)聽器、發(fā)送通知,注銷通知監(jiān)聽器三個(gè)方法;通知中心(NSNotificationCenter)采用單例的模式,整個(gè)系統(tǒng)只有一個(gè)通知中心,通過如下代碼獲取:

//獲取通知中心
[NSNotificationCenter defaultCenter];

注冊(cè)通知監(jiān)聽器方法:

//observer為監(jiān)聽器
//aSelector為接到收通知后的處理函數(shù)
//aName為監(jiān)聽的通知的名稱
//object為接收通知的對(duì)象,需要與postNotification的object匹配,否則接收不到通知
- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable NSNotificationName)aName object:(nullable id)anObject;

發(fā)送通知的方法:

//需要手動(dòng)構(gòu)造一個(gè)NSNotification對(duì)象
- (void)postNotification:(NSNotification *)notification;

//aName為注冊(cè)的通知名稱
//anObject為接受通知的對(duì)象,通知不傳參時(shí)可使用該方法
- (void)postNotificationName:(NSNotificationName)aName object:(nullable id)anObject;

//aUserInfo為將要傳遞的參數(shù),類型為字典類型
//通知需要傳參數(shù)時(shí)使用下面這個(gè)方法,其他同上。
- (void)postNotificationName:(NSNotificationName)aName object:(nullable id)anObject userInfo:(nullable NSDictionary *)aUserInfo;

注銷通知監(jiān)聽器方法:

//刪除通知的監(jiān)聽器
- (void)removeObserver:(id)observer;
//刪除通知的監(jiān)聽器,aName監(jiān)聽的通知的名稱,anObject監(jiān)聽的通知的發(fā)送對(duì)象
- (void)removeObserver:(id)observer name:(nullable NSNotificationName)aName object:(nullable id)anObject;
//以block的方式注冊(cè)通知監(jiān)聽器
- (id <NSObject>)addObserverForName:(nullable NSNotificationName)name object:(nullable id)obj queue:(nullable NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *note))block API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0));

使用情況:

NSNotificationCenter類一般用于一個(gè)對(duì)象傳遞事件給另外一個(gè)對(duì)象,在另一個(gè)對(duì)象中觸發(fā)某些方法,可以實(shí)現(xiàn)跨視圖的交互。我在最近一個(gè)月內(nèi)用到了兩次NSNotificationCenter類。

①在對(duì)項(xiàng)目進(jìn)行國際化時(shí),在切換語言時(shí)采用通知的方式,使其他界面進(jìn)行刷新(需要在主線程內(nèi))。

②使用SGPagingView時(shí),需要實(shí)現(xiàn)pageContentView中的內(nèi)容在多選狀態(tài)時(shí),pageTitleView禁止進(jìn)行切換的功能??戳薙GPagingView提供的方法是沒有這個(gè)的,所以就采用了NSNotificationCenter。在進(jìn)入多選狀態(tài)時(shí)發(fā)一條通知,在退出多選狀態(tài)時(shí)發(fā)一條通知(方法比較簡陋,如果有更好的方法請(qǐng)不吝賜教)。

//注冊(cè)通知監(jiān)聽器
  [NotifyUtil addNotify:NOTIFY_DISABLE_SWITCH Observer:self selector:@selector(disableSwitch) Object:nil];
  [NotifyUtil addNotify:NOTIFY_ALLOW_SWITCH Observer:self selector:@selector(allowSwitch) Object:nil];

//調(diào)用方法

//禁止pageTitleView進(jìn)行切換
-(void)disableSwitch{
  self.pageTitleView.userInteractionEnabled = NO;
}
//允許pageTitleView進(jìn)行切換
-(void)allowSwitch{
  self.pageTitleView.userInteractionEnabled = YES;
}

//注銷通知監(jiān)聽器
- (void) dealloc{
  [NotifyUtil removeNotify:NOTIFY_DISABLE_SWITCH Observer:self];
  [NotifyUtil removeNotify:NOTIFY_ALLOW_SWITCH Observer:self];
}

注:用NotifyUtil對(duì)NSNotificationCenter類進(jìn)行了一個(gè)簡單的封裝,參數(shù)基本都一致,就不貼NotifyUtil的代碼了。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS圖片拉伸技巧(iOS5.0、iOS6.0)

    iOS圖片拉伸技巧(iOS5.0、iOS6.0)

    這篇文章主要為大家詳細(xì)介紹了iOS圖片拉伸技巧,提供了3種圖片拉伸的解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • IOS中UIWebView、WKWebView之JS交互

    IOS中UIWebView、WKWebView之JS交互

    本篇文章主要介紹了IOS中UIWebView、WKWebView之JS交互,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 詳解Objective-C中的語法糖@{}究竟是什么

    詳解Objective-C中的語法糖@{}究竟是什么

    這篇文章主要給大家介紹了關(guān)于Objective-C中語法糖@{}究竟是什么的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 淺談IOS中AFNetworking網(wǎng)絡(luò)請(qǐng)求的get和post步驟

    淺談IOS中AFNetworking網(wǎng)絡(luò)請(qǐng)求的get和post步驟

    本篇文章主要介紹了淺談IOS中AFNetworking網(wǎng)絡(luò)請(qǐng)求的get和post步驟的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • iOS開發(fā)中導(dǎo)航控制器的基本使用教程

    iOS開發(fā)中導(dǎo)航控制器的基本使用教程

    這篇文章主要介紹了iOS開發(fā)中導(dǎo)航控制器的基本使用教程,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-11-11
  • iOS中多網(wǎng)絡(luò)請(qǐng)求的線程安全詳解

    iOS中多網(wǎng)絡(luò)請(qǐng)求的線程安全詳解

    這篇文章主要給大家介紹了關(guān)于iOS中多網(wǎng)絡(luò)請(qǐng)求的線程安全的相關(guān)資料文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • iOS開發(fā)之UIPickerView實(shí)現(xiàn)城市選擇器的步驟詳解

    iOS開發(fā)之UIPickerView實(shí)現(xiàn)城市選擇器的步驟詳解

    這篇文章給大家介紹iOS利用控件UIPickerView實(shí)現(xiàn)城市選擇器的效果,選擇城市這一功能相信在大家日常開發(fā)的時(shí)候經(jīng)常遇見,下面就來看看詳細(xì)的實(shí)現(xiàn)過程,有需要的可以參考借鑒。
    2016-09-09
  • iOS中使用RSA加密詳解

    iOS中使用RSA加密詳解

    本文主要介紹了iOS中使用RSA加密的方法,具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2016-12-12
  • iOS獲取設(shè)備唯一標(biāo)識(shí)的8種方法

    iOS獲取設(shè)備唯一標(biāo)識(shí)的8種方法

    這篇文章主要為大家詳細(xì)介紹了iOS獲取設(shè)備唯一標(biāo)識(shí)的8種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • iOS之單獨(dú)使用UISearchBar創(chuàng)建搜索框的示例

    iOS之單獨(dú)使用UISearchBar創(chuàng)建搜索框的示例

    本篇文章主要介紹了iOS之單獨(dú)使用UISearchBar創(chuàng)建搜索框的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10

最新評(píng)論