how to use the object property of NSNotificationcenter

后端 未结 2 1674
礼貌的吻别
礼貌的吻别 2020-12-22 23:30

Could somebody please show me how to use the object property on NSNotifcationCenter. I want to be able to use it to pass an integer value to my selector method.

This

2条回答
  •  一整个雨季
    2020-12-23 00:10

    The object property is not appropriate for that. Instead you want to use the userinfo parameter:

    + (id)notificationWithName:(NSString *)aName 
                        object:(id)anObject 
                      userInfo:(NSDictionary *)userInfo
    

    userInfo is, as you can see, an NSDictionary specifically for sending information along with the notification.

    Your dispatchFunction method would instead be something like this:

    - (void) disptachFunction:(int) index {
        NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:index] forKey:@"pass"];
       [[NSNotificationCenter defaultCenter] postNotificationName:@"myevent" object:nil userInfo:userInfo];
    }
    

    Your receiveEvent method would be something like this:

    - (void)receiveEvent:(NSNotification *)notification {
        int pass = [[[notification userInfo] valueForKey:@"pass"] intValue];
    }
    

提交回复
热议问题