NSNotification失败....为什么?

时间:2013-03-06 14:29:58

标签: ios objective-c nsnotificationcenter

我正在努力让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!");
}

但是,在运行应用程序时,我在日志中看不到任何输出。

我的代码出了什么问题?请指教。

2 个答案:

答案 0 :(得分:5)

错误的选择器应该是:

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

答案 1 :(得分:1)

上面的答案指出你在观察者方法中使用了错误的选择器,这肯定是个问题。

您应该检查的另一件事是在发布通知之前添加观察者。通知是同步的。发布时,只有已注册的观察者才能识别它们。

我建议您在发布通知的行上设置断点,并在添加观察者的行上设置断点,并查看首先被点击的行。