-1

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

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

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

4

2 回答 2

5

错误的选择器,应该是:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(firstRun:)name:@"first" object:nil];
于 2013-03-06T14:32:12.803 回答
1

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

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

我建议您在发布通知的行以及添加观察者的行上设置断点,然后查看哪个最先被击中。

于 2013-03-06T14:37:09.423 回答