NSNotificationCenterクラス
解説
継承 | NSObject |
準拠 | NSObject (NSObject) |
フレームワーク | /System/Library/Frameworks/Foundation.framework |
使用可能 | OS X v10.0以降 |
iOS 2.0以降 | |
定義 | NSNotification.h |
概要
他のオブジェクトに情報を伝達するためのクラスです。
通知(Notification)は特定のオブジェクトに通信するのではなく広くオブジェクトに通知します。そのため放送に例えられて、通知する事をブロードキャストと呼ぶ事が多いようです。
NSNotificationCenterは通知があった場合に、登録された監視対象キーがあれば登録されているオブジェクトのメソッドを呼び出します。
通知センターの取得
通常はデフォルトの通知センターが一つあり、これを使用します。デフォルトの通知センターを取得するメソッドは(+ defaultCenter)を使います。
通知センターの管理
通知センターに監視対象を登録するには(– addObserver:selector:name:object)メソッドを使います。(– addObserverForName:object:queue:usingBlock)メソッドを使うと登録してある通知が発生した場合に呼び出されるメソッドの代わりにBlocksオブジェクトを使うことができ、見通しがよくなります。
NSNotificationCenter *nCenter = [NSNotificationCenter defaultCenter]; [nCenter addObserverForName:UIKeyboardDidShowNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note){ NSLog(@"Block %@",[note description] ); } ];
すでに登録した監視対象を通知センターから取り除くには(– removeObserver)メソッドまたは(– removeObserver:name:object)メソッドを使います。
通知センターへのポスト
通知センターにポストするには、送信するパラメータの違いにより3種類のメソッドがあります。(– postNotification)(– postNotificationName:object)(– postNotificationName:object:userInfo)