macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

NSNotificationCenterクラス

INDEX>Foundation>

apple(OS X)
apple(iOS)

解説

継承 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

適合するプロトコル

サブクラス化の注意