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

时间:2010-02-22 08:20:38

标签: objective-c

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

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

但是当我这样创建时,我得到一个例外,因为'NSConcreteNotification init:is not allowed'。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:7)

来自NSNotification文档:

  

您可以使用类方法notificationWithName:object:notificationWithName:object:userInfo:创建通知对象。但是,您通常不会直接创建自己的通知。 NSNotificationCenter方法postNotificationName:object:postNotificationName:object:userInfo:允许您方便地发布通知,而无需先创建通知。

答案 1 :(得分:2)

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

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

如果您想使用自己的通知,请创建通知名称extern:

extern NSString* const XYYourNotification;

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