ある値が変更されたタイミングで、動かしたい処理がある場合に有効(キー値監視)
Notification.m
// NSNotificationCenterを作る
- (void)viewDidLoad {
// 通知を管理するNSNotificationCenterを生成
NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
// centerに「identifier」という名前の通知が来たときに、「getPost:」を実行することを設定
[center addObserver:self selector:@selector(getPost:) name:@"identifier" object:nil];
}
// 通知を送る
- (IBAction)sendNotification {
// NSNotificationを作成する
NSNotification* notification = [NSNotification notificationWithName:@"identifier" object:@"ここにgetPostで使いたいオブジェクトを指定できる"];
// NSNotificationCenterを取得する
NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
// 通知を行う
[center postNotification:notification];
}
// 通知を受け取って実行されるメソッド
- (void)getPost:(NSNotification*)notification {
// 通知のときに渡したオブジェクトを使うことができる
NSLog(@"%@", notification.object);
}
ここにgetPostで使いたいオブジェクトを指定できる
NSNotificationは、NSObjectクラスで実装されているので、どこでも使える。