为什么我收不到通知

时间:2011-06-15 18:52:30

标签: iphone objective-c

[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationForbidAdvPost object:nil];

我在.h文件中定义postNotificationName:kNotificationForbidAdvPost

我是NSApplication的子类,我导入了这个.h文件。并观察此通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeToRecordingStatus) name:kNotificationForbidAdvPost object:nil];

我确信首先添加观察者,然后发布通知。

我在Debug中看到[UINotification default]。它在两部分代码中具有相同的内存地址。

我有错吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

文档说明

时非常清楚
  

指定的方法   notificationSelector必须有一个和   只有一个参数(一个实例)   NSNotification)。

http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html#//apple_ref/doc/uid/20000219-CHDCIGGB

因此,当您必须changeToRecordingStatus

时,我看到您正在注册的选择器为changeToRecordingStatus:
- (void) changeToRecordingStatus: (NSNotification *) notification;

答案 1 :(得分:0)

我试过添加一个arugument,但它仍然没有用。

我创建了一个新项目并使用无参数函数来响应Notification,它正常工作。

我无法收到通知的原因是在一个我没注意到的部分调用了removeObserver方法。

感谢您的回复。