我正在看一个由我的组织提供给我的项目,供学习。
问题是在这个项目中我发现了一些我以前从未见过的代码。
请告诉我为什么写下面的代码。
-(void)notifications
{
[[NSNotificationCenter defaultCenter] addObserver: self selector:
@selector(hideViews) name: @"Hide" object:nil];
}
出现这个问题是因为这个项目只有一些设计代码。
对不起,如果这是一个愚蠢的问题......
答案 0 :(得分:3)
您应该了解通知在Cocoa中的工作原理。有关详细信息,请参阅Apple的文档:http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html
基本上,NSNotificationCenter
是一个从一个对象向潜在的许多观察对象广播NSNotifications
的类。一个对象可以发布通知
[[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationName" object:self];
和其他对象可以收听此通知。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationHandler:) object:theObjectThatPostedTheNotification];
然后,当第一个对象发布通知时,NSNotificationCenter
将通知另一个观察对象,并notificationHandler:
被调用。