iOS-NSNotificationCenter常用通知名稱

一、簡單的通知

發(fā)送方:僅僅發(fā)送通知,不包含發(fā)送數(shù)據(jù)
[[NSNotificationCenter defaultCenter] postNotificationName:@"getTargetJid" object:self];
接受方:開啟監(jiān)聽通知
[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(AddFriendAndGetrlyOnline)
                                             name: @"getTargetJid"
                                           object: nil];

二、通知加傳值

情況一:數(shù)據(jù)簡單

發(fā)送方:發(fā)送通知,包含發(fā)送數(shù)據(jù)
[[NSNotificationCenter defaultCenter] postNotificationName:@"getIsOnlineInfo" object:self userInfo:@{@"isOnline":@"yesOnline"}];

接受方:開啟監(jiān)聽通知
[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(getIsOnlineInfo:)
                                             name: @"getIsOnlineInfo"
                                           object: nil];

接收方:提取數(shù)據(jù)
-(void)getIsOnlineInfo:(NSNotification*)notification
{
    NSDictionary *nameDictionary = [notification userInfo];
    NSString *isonline = [nameDictionary objectForKey:@"isOnline"];
    
    if ([isonline isEqualToString:@"yesOnline"])
    {
        [self TESTBtn];
    }
    if ([isonline isEqualToString:@"noOnlie"])
    {
        NSLog(@"對方容聯(lián)云不在線");
    }
}

情況二:數(shù)據(jù)復(fù)雜

數(shù)據(jù)為 字典, 字典里數(shù)據(jù)是數(shù)組;
NSMutableArray * numArr = [[NSMutableArray alloc]initWithCapacity:5];
NSMutableArray * statusArr = [[NSMutableArray alloc]initWithCapacity:5];
NSMutableArray * snArr = [[NSMutableArray alloc]initWithCapacity:5];
NSDictionary *userInfoDic = [NSDictionary dictionaryWithObjectsAndKeys:
                                         numArr,@"mtSwitchNum",
                                         statusArr,@"mtSwitchStatus",
                                         snArr,@"mtSwitchSn",nil];

創(chuàng)建消息對象   發(fā)送消息
//創(chuàng)建一個(gè)消息對象
NSNotification * notice = [NSNotification notificationWithName:DENGKONG_STATUS_CHANGED object:nil userInfo:@{@"name":userInfoDic}];
//發(fā)送消息
[[NSNotificationCenter defaultCenter]postNotification:notice];

接受界面添加觀察者
//添加當(dāng)前類對象為一個(gè)觀察者,name和object設(shè)置為nil,表示接收一切通知
[center addObserver:self selector:@selector(refreshDKView:) name:DENGKONG_STATUS_CHANGED object:nil];

接受界面觀察者回調(diào)函數(shù)
//將獲取到的燈的狀態(tài)進(jìn)行界面顯示
-(void)refreshDKView:(NSNotification*)sender
{
//    NSLog(@"%@",sender);
    //解析列子    NSDictionary *nameDictionary = [notification userInfo];
    NSDictionary *resultDic = [sender userInfo];
    
    NSDictionary * contentDic = [resultDic objectForKey:@"name"];
    
    NSArray * numArr = [contentDic objectForKey:@"mtSwitchNum"];
    NSString *a = [numArr objectAtIndex:0];
    
    NSArray * statusArr = [contentDic objectForKey:@"mtSwitchStatus"];
    NSString *b = [statusArr objectAtIndex:0];
    
    NSArray * snArr = [contentDic objectForKey:@"mtSwitchSn"];
    NSString *c = [snArr objectAtIndex:0];
    
    NSLog(@"值:%@:%@:%@",a,b,c);
    
}

二、移除監(jiān)聽

[center removeObserver:self];
是刪除通知中心保存的調(diào)度表一個(gè)觀察者的所有入口
or

[center removeObserver:self name:UIContentSizeCategoryDidChangeNotification object:nil];
是刪除匹配了通知中心保存的調(diào)度表中觀察者的一個(gè)入口

三、常用通知

//音頻
AVF_EXPORT NSString *const AVAudioSessionInterruptionNotification                        //音頻中斷出現(xiàn)
AVF_EXPORT NSString *const AVAudioSessionRouteChangeNotification                            //系統(tǒng)的音頻線路發(fā)生改變
AVF_EXPORT NSString *const AVAudioSessionMediaServicesWereLostNotification                  //媒體服務(wù)終止
AVF_EXPORT NSString *const AVAudioSessionMediaServicesWereResetNotification                 //媒體服務(wù)重新啟動

//視頻
AVF_EXPORT NSString *const AVPlayerItemTimeJumpedNotification                               // 播放時(shí)間跳躍
AVF_EXPORT NSString *const AVPlayerItemDidPlayToEndTimeNotification                         // 播放結(jié)束
AVF_EXPORT NSString *const AVPlayerItemFailedToPlayToEndTimeNotification                    // 沒能播放到最后
AVF_EXPORT NSString *const AVPlayerItemPlaybackStalledNotification                          // 播放拋錨
AVF_EXPORT NSString *const AVPlayerItemNewAccessLogEntryNotification                        // 添加新的訪問日志條目
AVF_EXPORT NSString *const AVPlayerItemNewErrorLogEntryNotification                         // 添加新的錯(cuò)誤日志條目
 
MP_EXTERN NSString *const MPMediaLibraryDidChangeNotification;                              //媒體庫發(fā)生改變
MP_EXTERN NSString *const MPMediaPlaybackIsPreparedToPlayDidChangeNotification           //后臺準(zhǔn)備播放發(fā)生改變
MP_EXTERN NSString *const MPMoviePlayerScalingModeDidChangeNotification;           //視頻縮放填充模式發(fā)生改變
MP_EXTERN NSString *const MPMoviePlayerPlaybackDidFinishNotification;              //媒體播放完成或用戶手動退出
MP_EXTERN NSString *const MPMoviePlayerPlaybackStateDidChangeNotification                   //播放狀態(tài)改變
MP_EXTERN NSString *const MPMoviePlayerLoadStateDidChangeNotification                       //媒體網(wǎng)絡(luò)加載狀態(tài)改變
MP_EXTERN NSString *const MPMoviePlayerNowPlayingMovieDidChangeNotification //當(dāng)前播放的媒體內(nèi)容發(fā)生改變
MP_EXTERN NSString *const MPMoviePlayerWillEnterFullscreenNotification                      //將進(jìn)入全屏
MP_EXTERN NSString *const MPMoviePlayerDidEnterFullscreenNotification                       //進(jìn)入全屏后
MP_EXTERN NSString *const MPMoviePlayerWillExitFullscreenNotification                       //將要退出全屏
MP_EXTERN NSString *const MPMoviePlayerDidExitFullscreenNotification                        //退出全屏后
MP_EXTERN NSString *const MPMoviePlayerIsAirPlayVideoActiveDidChangeNotification         //當(dāng)媒體開始通過AirPlay播放或者結(jié)束AirPlay
MP_EXTERN NSString *const MPMoviePlayerReadyForDisplayDidChangeNotification                 //視頻顯示狀態(tài)改變
MP_EXTERN NSString *const MPMovieMediaTypesAvailableNotification                            //確定了媒體可用類型后
MP_EXTERN NSString *const MPMovieSourceTypeAvailableNotification                            // 確定了媒體來源后
MP_EXTERN NSString *const MPMovieDurationAvailableNotification                              //確定了媒體播放時(shí)長后
MP_EXTERN NSString *const MPMovieNaturalSizeAvailableNotification                           //確定了媒體的實(shí)際尺寸后
MP_EXTERN NSString *const MPMoviePlayerThumbnailImageRequestDidFinishNotification         //縮略圖請求完成之后
MP_EXTERN NSString *const MPMoviePlayerTimedMetadataUpdatedNotification                     //同步元數(shù)據(jù)發(fā)生更新
MP_EXTERN NSString *const MPMoviePlayerContentPreloadDidFinishNotification                  //媒體內(nèi)容預(yù)加載完成
MP_EXTERN NSString *const MPMusicPlayerControllerPlaybackStateDidChangeNotification;        //播放狀態(tài)改變
MP_EXTERN NSString *const MPMusicPlayerControllerNowPlayingItemDidChangeNotification;       //播放內(nèi)容改變
MP_EXTERN NSString *const MPMusicPlayerControllerVolumeDidChangeNotification;               //音量發(fā)生改變


//拍照/錄像
AVF_EXPORT NSString *const AVCaptureDeviceWasConnectedNotification                          //輸入設(shè)備已連接
AVF_EXPORT NSString *const AVCaptureDeviceWasDisconnectedNotification                       //輸入設(shè)備失去連接
AVF_EXPORT NSString *const AVCaptureDeviceSubjectAreaDidChangeNotification                  //捕獲區(qū)域發(fā)生改變
AVF_EXPORT NSString *const AVCaptureInputPortFormatDescriptionDidChangeNotification   //輸入設(shè)備端口描述改變
AVF_EXPORT NSString *const AVCaptureSessionRuntimeErrorNotification                         //媒體會話運(yùn)行錯(cuò)誤
AVF_EXPORT NSString *const AVCaptureSessionDidStartRunningNotification                      //媒體會話開始運(yùn)行
AVF_EXPORT NSString *const AVCaptureSessionDidStopRunningNotification                       //媒體會話停止運(yùn)行
AVF_EXPORT NSString *const AVCaptureSessionWasInterruptedNotification                       //媒體會話中斷
AVF_EXPORT NSString *const AVCaptureSessionInterruptionEndedNotification                    //媒體會話中斷停止

//常用視圖
UIKIT_EXTERN NSString *const UITableViewSelectionDidChangeNotification;                     //TableView選中發(fā)生改變

UIKIT_EXTERN NSString *const UITextFieldTextDidBeginEditingNotification;                    //TextField開始編輯
UIKIT_EXTERN NSString *const UITextFieldTextDidEndEditingNotification;                      //TextField發(fā)生改變
UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;                          //TextField結(jié)束編輯

UIKIT_EXTERN NSString * const UITextViewTextDidBeginEditingNotification;                    //TextView開始編輯
UIKIT_EXTERN NSString * const UITextViewTextDidChangeNotification;                          //TextView發(fā)生改變
UIKIT_EXTERN NSString * const UITextViewTextDidEndEditingNotification;                      //TextView結(jié)束編輯

UIKIT_EXTERN NSString *const UIWindowDidBecomeVisibleNotification;  //window激活并展示在界面的時(shí)候觸發(fā)
UIKIT_EXTERN NSString *const UIWindowDidBecomeHiddenNotification;                           //當(dāng)window隱藏的時(shí)候觸發(fā)
UIKIT_EXTERN NSString *const UIWindowDidBecomeKeyNotification;      //當(dāng)window被設(shè)置為keyWindow時(shí)觸發(fā)
UIKIT_EXTERN NSString *const UIWindowDidResignKeyNotification;                   //當(dāng)window的key位置被取代時(shí)觸發(fā)
UIKIT_EXTERN NSString *const UIKeyboardWillShowNotification;                                //鍵盤將彈出
UIKIT_EXTERN NSString *const UIKeyboardDidShowNotification;                                 //鍵盤彈出
UIKIT_EXTERN NSString *const UIKeyboardWillHideNotification;                                //鍵盤將要隱藏
UIKIT_EXTERN NSString *const UIKeyboardDidHideNotification;                                 //鍵盤隱藏
UIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification                       //鍵盤frame將發(fā)生改變
UIKIT_EXTERN NSString *const UIKeyboardDidChangeFrameNotification                        //鍵盤frame發(fā)生改變后


//日期,時(shí)間
FOUNDATION_EXPORT NSString * const NSCalendarDayChangedNotification                         //日期發(fā)生改變
FOUNDATION_EXPORT NSString * const NSSystemClockDidChangeNotification                       //系統(tǒng)時(shí)鐘發(fā)生改變
FOUNDATION_EXPORT NSString * const NSSystemTimeZoneDidChangeNotification                    //系統(tǒng)時(shí)區(qū)發(fā)生改變


//線程
FOUNDATION_EXPORT NSString * const NSWillBecomeMultiThreadedNotification;                   //將變成多線程
FOUNDATION_EXPORT NSString * const NSDidBecomeSingleThreadedNotification;                   //變成了單線程
FOUNDATION_EXPORT NSString * const NSThreadWillExitNotification;                            //線程退出


//程序
UIKIT_EXTERN NSString *const UIApplicationDidEnterBackgroundNotification                    //程序進(jìn)入后臺
UIKIT_EXTERN NSString *const UIApplicationWillEnterForegroundNotification                   //程序?qū)⑦M(jìn)入前臺
UIKIT_EXTERN NSString *const UIApplicationDidFinishLaunchingNotification;                   //程序加載完成
UIKIT_EXTERN NSString *const UIApplicationDidBecomeActiveNotification;                      //程序變成激活狀態(tài)
UIKIT_EXTERN NSString *const UIApplicationWillResignActiveNotification;                     //程序?qū)⑹ゼせ顮顟B(tài)
UIKIT_EXTERN NSString *const UIApplicationDidReceiveMemoryWarningNotification;              //接收到內(nèi)存警告
UIKIT_EXTERN NSString *const UIApplicationWillTerminateNotification;                        //程序?qū)⒔K止
UIKIT_EXTERN NSString *const UIApplicationSignificantTimeChangeNotification;         //新的一天開始或時(shí)區(qū)發(fā)生變化
UIKIT_EXTERN NSString *const UIApplicationWillChangeStatusBarOrientationNotification;       //將改變狀態(tài)欄方向
UIKIT_EXTERN NSString *const UIApplicationDidChangeStatusBarOrientationNotification;        //狀態(tài)欄方向以改變
UIKIT_EXTERN NSString *const UIApplicationWillChangeStatusBarFrameNotification;             //將改變狀態(tài)欄frame
UIKIT_EXTERN NSString *const UIApplicationDidChangeStatusBarFrameNotification;              //狀態(tài)欄frame發(fā)生改變
UIKIT_EXTERN NSString *const UIApplicationBackgroundRefreshStatusDidChangeNotification //后臺刷新狀態(tài)改變
UIKIT_EXTERN NSString *const UIApplicationUserDidTakeScreenshotNotification                 //截屏?xí)r觸發(fā)通知

//硬件設(shè)備
UIKIT_EXTERN NSString *const UIDeviceOrientationDidChangeNotification;                      //設(shè)備方向改變
UIKIT_EXTERN NSString *const UIDeviceBatteryStateDidChangeNotification                      //電池狀態(tài)改變
UIKIT_EXTERN NSString *const UIDeviceBatteryLevelDidChangeNotification                      //電池電量改變
UIKIT_EXTERN NSString *const UIDeviceProximityStateDidChangeNotification                    //距離感應(yīng)器狀態(tài)發(fā)生改變

//其它
UIKIT_EXTERN NSString *const UILocalNotificationDefaultSoundName                            //本地通知聲音

UIKIT_EXTERN NSString *const UIPasteboardChangedNotification;                               //粘貼板發(fā)生改變
UIKIT_EXTERN NSString *const UIPasteboardRemovedNotification;                               //粘貼板內(nèi)容移除
 
FOUNDATION_EXPORT NSString * const NSUserDefaultsDidChangeNotification;               //NSUserDefaults發(fā)生改變
FOUNDATION_EXPORT NSString * const NSBundleDidLoadNotification;                             //bundle加載完成
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容