-4

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html#//apple_ref/occ/instm/NSNotificationCenter/postNotificationName:object:userInfo :

postNotificationName:オブジェクト:userInfo:

基本的に、オブザーバーはその userInfo をどのように取得しますか?

全体を示す短いサンプル コードはどこかにありますか?

4

2 に答える 2

1
#import <Foundation/Foundation.h>

#define kSomeKey @"key"
#define kNotificationName @"MyMadeUpNameNotification"
@interface Test : NSObject
@end
@implementation Test
-(void) handleNotification:(NSNotification*)notification {
    NSString *object = [notification.userInfo objectForKey:kSomeKey];
    NSLog(@"%@",object);
}
-(void) run {
    [[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(handleNotification:) 
                                                 name: kNotificationName 
                                               object: nil]; 
    NSString *anyObject = @"hello";
    NSDictionary *userInfo = [NSDictionary dictionaryWithObject:anyObject forKey:kSomeKey];
    NSNotification *notification = [NSNotification notificationWithName:kNotificationName object:nil userInfo:userInfo];
    [[NSNotificationCenter defaultCenter] postNotification:notification];
}
@end


int main(int argc, char *argv[]) {
    @autoreleasepool {
        [[Test new] run];
    }
}
于 2012-06-02T18:13:40.597 に答える
1

基本的に、オブザーバーはその userInfo をどのように取得しますか?

NSNotification クラス参照を参照してください。userInfoNSDictionary であるプロパティがあります。

于 2012-06-02T17:47:10.813 に答える