How to use parametrized method with NSNotificationCenter?
cocoa-touch, iphone, nsnotifications, objective-c
Solution
You will receive an NSNotification object, not an NSDictionary in the notification callback.
Try this:
- (void) processit: (NSNotification *)note {
NSString *test = [[note userInfo] valueForKey:@"l"];
NSLog(@"output is %@", test);
}
Problem
I'd like to pass dict to the method processit. But once I access the dictionary, I get EXC__BAD_INSTRUCTION. ``` NSNotificationCenter *ncObserver = [NSNotificationCenter defaultCenter]; [ncObserver addObserver:self selector:@selector(processit:) name:@"atest" object:nil]; NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"testing", @"first", nil]; NSString *test = [dict valueForKey:@"first"]; NSNotificationCenter *ncSubject = [NSNotificationCenter defaultCenter]; [ncSubject postNotificationName:@"atest" object:self userInfo:dict]; ``` In the recipient method: ``` - (void) processit: (NSDictionary *)name{ NSString *test = [name valueForKey:@"l"]; //EXC_BAD_INSTRUCTION occurs here NSLog(@"output is %@", test); } ``` Any suggestions on what I'm doing wrong?