NSNotificationCenter 傳遞帶引數的通知
阿新 • • 發佈:2019-02-05
第一步:註冊通知
NSNotificationCenter 在 init或在需要傳值的裡面註冊這個通知,
/*** addObserver:註冊一個通知中心的接收者
* selector :接收該通知執行的方法,如果有引數,可理解為發起通知傳遞的引數
* name:通知的名字,也是通知的唯一標示,編譯器就通過這個找到通知的。
*/
[[NSNotificationCenter defaultCenter] addObserver: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 defaultCenter] removeObserver:self name:str object:nil];