NSNotificationクラス
apple(mac)
解説
継承 | NSObject |
準拠 | NSObject (NSObject) |
フレームワーク | /System/Library/Frameworks/Foundation.framework |
使用可能 | Mac OS X v10.0以降 |
iOS 2.0以降 | |
定義 |
概要
NSNotificationオブジェクトは他のオブジェクトに情報を送信するために、名前・オブジェクト・オプションの辞書を含んでカプセル化されています。
ノーティフィケーションセンター(NSNotificationCenter)を通して他のオブジェクトに送信されます。
作成
通知を作るには2種類の方法があります。通知名とオブジェクトで作成する方法(+ notificationWithName:object:)、もう一つは通知名・オブジェクトとNSDictionaryで作った追加の情報とで作成する方法(+ notificationWithName:object:userInfo:)です。
通知はNSNotificationCenterのpostNotification:メソッドを使って放送(ブロードキャスト)されます。通知センターに登録してあれば、他のアプリケーションにも通知されます。
NSString *aString = [NSString stringWithString:@"String"]; NSDictionary *aDic = [NSDictionary dictionaryWithObject:@"Object" forKey:@"key"]; NSNotification *notifi = [NSNotification notificationWithName:@"MyNotification" object:aString userInfo:aDic]; [nCenter postNotification:notifi];
通知情報を取得
NSNotificationが持つ情報は3つあります。一つ目は通知名、(– name)メソッドで取得できます。二つ目はオブジェクト、(– object)メソッドで取得できます。最後はユーザー情報、(– userInfo)で取得できます。ユーザー情報はNSDictionaryオブジェクトで追加の情報を渡したい場合に使用します。
いろいろな通知名
UIWindowではキーボードが出現しようとする前に(UIKeyboardWillShowNotification)が通知されます。出現した後には(UIKeyboardDidShowNotification)が通知されます。
キーボードが消えようとする前には(UIKeyboardWillHideNotification)が、消えた後には(UIKeyboardDidHideNotification)が通知されます。
UIApplicationでは画面の向きの変更に対して様々な通知がブロードキャストされます。
ステータスバーの向きが変わる時には(UIApplicationWillChangeStatusBarOrientationNotification)がブロードキャストされます。UserInfoに新しい向きが返されます。
UIScreenクラスでは画面の明るさを変更した時に(UIScreenBrightnessDidChangeNotification)がブロードキャストされます。
適合するプロトコル
メソッド
Creating Notifications
+ notificationWithName:object
+ notificationWithName:object:userInfo
Getting Notification Information
サブクラス化の注意