【NSNotificationCenter】の便利さ

ど~も!まーくんです。

今回は【NSNotificationCenter】の便利さについて書かせて頂きます。

例えば、アプリがアクティブになる毎に実行した場合はAppDelegateのapplicationDidBecomeActive
をViewControllerで呼び出します。

その場合はNSNotificationCenterを使います。

■AppDelegateのアプリがActiveになった際に呼び出されるメソッド
-(void)applicationDidBecomeActive:(UIApplication *)application{

↑を呼び出す時は↓のように記述してみます。

■AppDelegate.m
-(void)applicationDidBecomeActive:(UIApplication *)application{
NSLog(@”AppDelegate applicationDidBecomeActive”);

// applicationDidBecomeActiveにデフォルトの通知センターを作成
[[NSNotificationCenter defaultCenter] postNotificationName:@”applicationDidBecomeActive”
object:nil];
}

■ViewController.m
-(void)viewDidLoad{
// 受け取る処理(オブザーバの登録)と受け取った後の処理
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidBecomeActive)
name:@”applicationDidBecomeActive”
object:nil];
}
-(void)dealloc{
// 通知センターを削除する
[[NSNotificationCenter defaultCenter] removeObserver:self
name:@”didFinishLaunchingWithOptions”
object:nil];
}
-(void)applicationDidBecomeActive{
NSLog(@”ViewController applicationDidBecomeActive”);
}

これでNSLogでは
①AppDelegate applicationDidBecomeActive

②ViewController applicationDidBecomeActive
の順に呼ばれます。

とても便利です、ぜひ使ってみましょう!