我想创建一个NSNotification对象,如:
NSNotification *obj=[[NSNotification alloc]init];
但是当我这样创建时,我得到一个例外,因为'NSConcreteNotification init:is not allowed'。 我该如何解决这个问题?
答案 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 * 如果您使用字符串常量作为通知名称,那么您的代码就不容易出错。