调试NSNotificationCenter问题的方法?

时间:2010-01-23 16:41:11

标签: iphone objective-c debugging

我在发布通知时遇到了一些问题:

[[NSNotificationCenter defaultCenter] postNotificationName:@"MobileProviderChanged" 
                                                    object:self.selectedProviderID];

没有被我的观察者困住:

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

完全相同的观察者在不同的ViewController中正常工作。

有关调试此方法的任何提示,以查看实际发布到defaultCenter的消息是什么?

感谢。

2 个答案:

答案 0 :(得分:1)

  

我研究这个问题越多,我   不知道我的问题是不是   发送viewcontroller是在   与观察不同的线程   视图控制器。

错误的多线程几乎肯定是您问题的根源。但是,仍应发送和接收通知。

具体而言,将收到有关发送的任何线程的通知。既然你提到你正在使用视图控制器来响应通知,很可能你在UIKit不满意的非主线程上做了一些事情。

答案 1 :(得分:1)

遇到同样的问题。解决方案很简单,但并不明显:

确保在NSNotification交付期间观察者仍然存在。