我正在努力让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!");
}
但是,在运行应用程序时,我在日志中看不到任何输出。
我的代码出了什么问题?请指教。
答案 0 :(得分:5)
错误的选择器应该是:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(firstRun:)name:@"first" object:nil];
答案 1 :(得分:1)
上面的答案指出你在观察者方法中使用了错误的选择器,这肯定是个问题。
您应该检查的另一件事是在发布通知之前添加观察者。通知是同步的。发布时,只有已注册的观察者才能识别它们。
我建议您在发布通知的行上设置断点,并在添加观察者的行上设置断点,并查看首先被点击的行。