4

NSSNotifcationをiPhoneアプリの別のViewControllerに送信していますが、そのオブザーバーメソッドは2回通知されます。

このコードを使用して通知を投稿しました

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateStatusOnFacebook" object:nil userInfo:nil];

オブザーバーを追加しました

[[NSNotificationCenter defaultCenter]   addObserver:self  selector:@selector(postToWall)                name:@"updateStatusOnFacebook"  object:nil];
4

2 に答える 2

6

オブザーバーを2回追加しましたか?

addObserver:selector:object:inを呼び出しているメソッドはどれですか?viewWillAppearにある場合、これは複数回呼び出される可能性があります。

メソッドは、オブザーバーを追加したのと同じ回数呼び出されます。

これを試して:

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"updateStatusOnFacebook" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(postToWall) name:@"updateStatusOnFacebook" object:nil];

もう1つの理由は、通知を2回送信しているだけかもしれないということです:)

于 2011-01-27T13:22:03.377 に答える
0

同じ問題が発生し、この質問を読みましたが、プロジェクトのどこにでもオブザーバーを追加するための呼び出しを1つしか見つけることができませんでした。

私たちの場合、ラインが含まれていたメソッドが2回呼び出されていたため、オブザーバー2回追加されていました。

addObserver:selector:name:objectその呼び出しへの予期しない余分な実行パスがないことを確認するために、呼び出しを中断してコードをステップスルーするようにしてください。

于 2012-05-22T01:19:54.533 に答える