1. 程式人生 > >NSNotificationCenter 傳遞帶引數的通知

NSNotificationCenter 傳遞帶引數的通知

第一步:註冊通知

NSNotificationCenter  在  init或在需要傳值的裡面註冊這個通知,

/**
 *  addObserver:註冊一個通知中心的接收者
 *  selector :接收該通知執行的方法,如果有引數,可理解為發起通知傳遞的引數
 *  name:通知的名字,也是通知的唯一標示,編譯器就通過這個找到通知的。
 */

   [[NSNotificationCenter defaultCenteraddObserver:self selector:@selector(test:)   name:@“notifacation”object:nil];

第二步:發起通知


不傳引數發起通知的寫法:

[[NSNotificationCenter defaultCenter] postNotificationName:@"notifacation" object:nil];

一般在使用NSNotificationCenter的時候不使用引數,但是有些時候需要使用引數。

傳遞引數的寫法:傳遞一個引數 searchFriendArray

[[NSNotificationCenter defaultCenter] postNotificationName:@"notifacation" object:searchFriendArray];

第三步:接收通知(接收通知傳遞的引數)

接收引數並獲取傳遞的引數

- (void) test:(NSNotification*) notification

{

    searchFriendArrary = [notification object];//通過這個獲取到傳遞的物件

    //  do something........

}

   //在dealloc裡面移除這個通知的註冊: 

   [[NSNotificationCenter  defaultCenterremoveObserver:self  name:str object:nil];