2012-06-02 1 views
-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?

Есть ли короткий образец кода где-нибудь, чтобы показать все это?

ответ

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]; 
    } 
} 
+0

Я думаю, что информация о пользователе должна быть там. Это не может быть строка, и вы не вставляете ее. –

+0

Простите, Джим, вы правы. На этот раз я редактировал и тестировал CodeRunner. – Jano

+0

Так что я вижу. Да, вы даете свои данные через информацию о пользователе. Как будто я подозревал. Спасибо Яно. –

1

В основном, как наблюдатель получает эту пользовательскую информацию?

См. Класс NSNotification ref. Он имеет свойство userInfo, которое является NSDictionary.

 Смежные вопросы

  • Нет связанных вопросов^_^