NSNotificationCenterクラス

2014. 05. 10
・継承
NSObject

・準拠
NSObject (NSObject)

・フレームワーク
/System/Library/Frameworks/Foundation.framework

・利用可能
iOS 2.0以降で利用可能

・手引書
Notification Programming Topics

・宣言
NSNotification.h



●概要

NSNotificationCenterオブジェクト(または単に通知センター)は、プログラム内の情報をブロードキャストするメカニズムを提供します。
NSNotificationCenterオブジェクトは基本的に通知ディスパッチテーブルです。

オブジェクトは通知(NSNotificationオブジェクト)を受信するために、addObserver:selector:name:object:またはaddObserverForName:object:queue:usingBlock:メソッドを使用して通知センターに登録します。
このメソッドの各呼び出しには通知のセットを指定します。
したがってオブジェクトはこれらのメソッドを複数回呼び出すことによって、様々な通知セットのオブザーバとして登録することができます。

実行中の各Cocoaプログラムはデフォルトの通知センターを持っています。
通常は独自に作成しないでください。
NSNotificationCenterオブジェクトは単一のプログラム内でのみ、通知を配信することができます。
別のプロセスに通知を投稿したい、あるいは別のプロセスから通知を受信したい場合は、NSDistributedNotificationCenterのインスタンスを使用してください。



●タスク

●通知センターの取得

+ defaultCenter

●通知オブザーバの管理

– addObserverForName:object:queue:usingBlock:
– addObserver:selector:name:object:
– removeObserver:
– removeObserver:name:object:

●通知の投稿

– postNotification:
– postNotificationName:object:
– postNotificationName:object:userInfo:



●クラスメソッド

defaultCenter

プロセスのデフォルトの通知センターを返します。

+ (id)defaultCenter

戻り値
システム通知に使用されている、現在のプロセスのデフォルトの通知センター。

利用可能
iOS 2.0以降で利用可能。

宣言
NSNotification.h



●インスタンスメソッド

addObserver:selector:name:object:

オブザーバ、通知セレクタ、そしてオプションの条件と共に、レシーバのディスパッチテーブルへエントリを追加します。

- (void)addObserver:(id)notificationObserver selector:(SEL)notificationSelector name:(NSString *)notificationName object:(id)notificationSender

パラメータ

notificationObserver

オブザーバとして登録するオブジェクトです。
この値はnilではいけません。

notificationSelector
通知の投稿を通知するために、レシーバがnotificationObserverに送信するメッセージを指定するセレクタです。
notificationSelectorで指定されたメソッドは、(NSNotificationのインスタンスの)引数を一つだけ持っている必要があります。

notificationName
オブザーバを登録するための通知の名前です。
つまり、この名前の通知のみオブザーバに配信されます。
nilを渡した場合、通知センターはオブザーバへ配信するかどうかを決定するために通知名を使用しません。

notificationSender
オブザーバが受信したい通知のオブジェクトです。
つまり、このセンダーによって送信された通知のみがオブザーバに配信されます。
nilを渡した場合、通知センターはオブザーバへ配信するかどうかを決定するために通知のセンダーを使用しません。

解説
addObserver:selector:name:object:で指定されたnotificationObserverまたはその他のオブジェクトを解放する前に、removeObserver:またはremoveObserver:name:object:を必ず呼び出してください。

利用可能
iOS 2.0以降で利用可能。

宣言
NSNotification.h


removeObserver:

レシーバのディスパッチテーブルから指定されたオブザーバの全てのエントリ削除します。

- (void)removeObserver:(id)notificationObserver

パラメータ

notificationObserver

削除するオブザーバです。
nilを指定してはいけません。

解説
addObserver:selector:name:object:で指定されたnotificationObserverまたはその他のオブジェクトを解放する前に、このメソッド(またはremoveObserver:name:object:)を必ず呼び出してください。

以下の例では、以前に登録していた全ての通知用のsomeObserverの登録を解除する方法を示します。

[[NSNotificationCenter defaultCenter] removeObserver:someObserver];

利用可能
iOS 2.0以降で利用可能。

宣言
NSNotification.h



参考文献

NSNotificationCenter Class Reference






Bose QuietComfort 20
2 Comments
By 05 09, 2014 - URL [ edit ]

>このメソッド(またはremoveObserver:name:object:)を呼び出す前に、notificationObserverまたはaddObserver:selector:name:object:で指定した任意のオブジェクトを解放してください。

逆では?

By 水月杏香05 10, 2014 - URL [ edit ]

ご指摘の通り意味が真逆になっていましたので修正しました。
ご指摘いただき、ありがとうございます。

Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
08 | 2017/09 | 10
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
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

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

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

Bose QuietComfort 20
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
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR