我正在将NSSNotifcation发送到iPhone应用程序中的另一个视图控制器,但是它的观察者方法被告知两次可能的任何人如何指导我
我已使用此代码发布通知
[[NSNotificationCenter defaultCenter] postNotificationName:@"updateStatusOnFacebook" object:nil userInfo:nil];
并添加观察员
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(postToWall) name:@"updateStatusOnFacebook" object:nil];
答案 0 :(得分:6)
你有两次加入观察者吗?
你在调用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 :(得分:0)
我遇到了同样的问题,并且阅读了这个问题,但只能找到一个调用来在项目的任何地方添加观察者。
在我们的例子中,观察者 被添加两次,因为该行所在的方法被称为两次。
确保您单步执行代码,中断addObserver:selector:name:object
调用,以确保您没有意外的额外执行路径。