如何在Objective-C中创建一个NSNotification对象?

5

我想创建一个NSNotification对象,代码如下:

NSNotification *obj=[[NSNotification alloc]init];

但是当我像这样创建时,我会收到一个异常,提示“NSConcreteNotification init: is not allowed”。我该如何解决这个问题?
2个回答

7

2

NSNotificationCenter有方便的方法来构建和发送通知:

[[NSNotificationCenter defaultCenter] 
               postNotificationName:XYYourNotification
               object:@"someObject"];

如果您想使用自己的通知,请创建名为“extern”的通知名称:
extern NSString* const XYYourNotification;

在你的实现中定义实际的NSString*。
如果你使用字符串常量作为通知名称,你的代码就不容易出现打字错误。


1
我知道这是一个旧答案,但是你应该使用FOUNDATION_EXPORT而不是extern。在Objective-C文件中,它将是extern,在Objective-C++项目中,它将是extern "C",如果你发现自己在使用它们。 - Brandon Buck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接