-1

NSNotificationsを機能させようとしています。現時点では、成功していません。

私のappDelegate.mファイルには次のものがあります。

[[NSNotificationCenter defaultCenter] postNotificationName:@"first" object:nil];

mainViewController.mのviewDidLoadメソッドに

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(firstRun)name:@"first" object:nil];

そして、メソッドを作成しました(mainViewController.mでも):

-(void) firstRun:(NSNotification *) notification
{
        NSLog(@"This works!");
}

ただし、アプリの実行時にログに出力が表示されません。

私のコードの何が問題になっていますか?お知らせ下さい。

4

2 に答える 2

5

間違ったセレクターは、次のようになります。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(firstRun:)name:@"first" object:nil];
于 2013-03-06T14:32:12.803 に答える
1

オブザーバーメソッドで間違ったセレクターを使用したことを指摘する上記の答えは、間違いなく問題です。

確認する必要があるもう1つのことは、通知が投稿される前にオブザーバーを追加することです。通知は同期的です。投稿されると、すでに登録されているオブザーバーによってのみ認識されます。

通知を投稿する行と、オブザーバーを追加する行にブレークポイントを設定して、どちらが最初にヒットするかを確認することをお勧めします。

于 2013-03-06T14:37:09.423 に答える