使用NSNotificationCenter向另一个班级发送通知

时间:2011-07-24 22:11:14

标签: objective-c nsnotificationcenter nsnotification

所以我的目标是使用NSNotificationCenter向另一个班级发送通知,我还希望将通知object传递给另一个class,我该怎么做?

2 个答案:

答案 0 :(得分:7)

您必须先注册通知名称

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startLocating:) name:@"ForceUpdateLocation" object:nil]; // don't forget the ":"

然后发布带有参数字典的通知

[[NSNotificationCenter defaultCenter] postNotificationName:@"ForceUpdateLocation" object:self userInfo:[NSDictionary dictionaryWithObject:@"1,2,3,4,5" forKey:@"categories_ids"]]; 

,方法将是

- (void)startLocating:(NSNotification *)notification {

    NSDictionary *dict = [notification userInfo];
}

答案 1 :(得分:0)

只需调用here所述的任何发布通知的方法,例如:

发布通知:

-(void)postNotificationName:(NSString *)notificationName
                     object:(id)notificationSender
                   userInfo:(NSDictionary *)userInfo;

其中userInfo是包含有用对象的字典。

另一方面注册通知:

-(void)addObserver:(id)notificationObserver
           selector:(SEL)notificationSelector
               name:(NSString *)notificationName
             object:(id)notificationSender;

您还可以查看Apple的Notification Programming Topics