NSNotificationクラス

2010. 10. 18
●概要

NSNotificationオブジェクトは、NSNotificationCenterオブジェクトによる他オブジェクトへのブロードキャストをできるようにするため、情報をカプセル化します。

NSNotificationオブジェクト(通知とも呼ばれる)は名前とオブジェクト、オプションの辞書を含みます。

名前は通知を識別するタグです。

オブジェクトは、通知のオブザーバに送信したい通知を投稿する任意のオブジェクトです。
(通常はこのオブジェクトが通知を投稿します)

辞書は他の関連するオブジェクトがあれば、それを格納します。

NSNotificationオブジェクトは不変オブジェクトです。

通知オブジェクトは、notificationWithName:object:またはnotificationWithName:object:userInfo:クラスメソッドで生成できます。

ただし、通常は自身で直接通知を生成しないでください。

NSNotificationCenterメソッドのpostNotificationName:object:postNotificationName:object:userInfo:は、最初に生成せずに通知を投稿することができる簡易メソッドです。

NSCopyingプロトコル

NSNotificationクラスはNSCopyingプロトコルを採用し、通知として扱うことが可能なコンテキスト独立値のコピーや再利用で作ることができます。

後に使用する、または分散オブジェクトシステムを使って他のプロセスに通知を送信するために、通知を格納することができます。

NSCopyingプロトコルは基本的に、コレクションでコピーできる最初のクラスの値として、通知を処理してクライアントに提供します。

配列内に通知を置いたり、配列にコピーメッセージを送信するなど、全てのアイテムは再帰的にコピーできます。

サブクラスの生成

NSNotificationは追加した通知名、オブジェクト、辞書の情報を含めてサブクラス化することができます。

追加したデータは、通知とオブザーバ間で一致している必要があります。

NSNotificationはインスタンス変数の無いクラスクラスタです。

そのため、NSNotificationのサブクラス化は元のメソッドのnameobjectuserInfoをオーバーライドする必要があります。

初期化には好きな指定イニシャライザを選択できますが、イニシャライザがNSNotificationのinitの実装([super init])を呼び出さないようにしてください。

NSNotificationは直接インスタンス化するものではなく、initメソッドは例外を発生させます。



●タスク

●通知の生成

+ notificationWithName:object:
+ notificationWithName:object:userInfo:

●通知情報の取得

– name
– object
– userInfo



●クラスメソッド



●インスタンスメソッド

name

- (NSString *)name

通知の名前を返します。

戻り値は通常通知を受け取る時にどのような処理をする通知かを調べるため、このメソッドを使用します。

通知名には任意の文字列を指定できます。

名前の衝突を回避するため、アプリケーション固有のプレフィックス(接頭辞)を付けた方が望ましい場合があります。


object

- (id)object

通知に関連付けされたオブジェクトを返します。

これは多くの場合、この通知を投稿したオブジェクトです。

それはnilになる場合があります。

通常このメソッドは、通知を受信した時に通知を適用するオブジェクトを見つけるために使用します。

例えば、通知センターに『PortInvalid(ポート無効)』通知が投稿された時に、そのメッセージを受信するオブジェクトhandlePortDeath:を登録したとすると、handlePortDeath:は現在無効になっているポートを監視するオブジェクトにアクセスする必要があります。

handlePortDeath:は以下のようにオブジェクトを取得することができます。

- (void)handlePortDeath:(NSNotification *)notification
{
    ...
    [self reclaimResourcesForPort:[notification object]];
    ...
}



参考文献

NSNotification Class Reference






Bose SoundSport wireless headphones
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
02 | 2017/03 | 03
Sun Mon Tue Wed Thu Fri Sat
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
Recent Articles
iTunes


Swift
Categories
Tips
WACOM


Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
BOSE

Bose SoundSport wireless headphones
ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
SQLite
OpenGL ES
Amazon


Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Profile

Author:水月杏香
永遠の初心者プログラマ。

QR Code
QR
Visitors