1
FirstController.mNSNotification消息
- (IBAction)done:(id)sender {
NSNotification *msg = [NSNotification notificationWithName:@"addNevItem" object:[NSString stringWithFormat:@"%i",1]];
[[NSNotificationCenter defaultCenter] postNotification:msg];
}
TwoController.m
- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(addNevItem:)
name:@"addNevItem"
object:nil];
}
-(void)addNevItem:(NSNotification *)notification {
NSLog(@"dd");
}
如果执行该操作一次,在控制台中我看到一个消息。如果该动作执行两次,在控制台中我会看到另外两个。如果该动作执行三次,在控制台中我会看到三个。这是为什么发生?我在程序的其他部分使用相同的代码,并且总是只有一条消息。
看起来好像你在'addObserver'调用中混淆了选择器和名称。这是你真正的代码吗? - 观察员在哪里被删除? –
“如果操作执行一次,在控制台中我会看到一条消息”:我在这里看不到您的问题,这正是预期的行为。您发送一个通知,每个观察者收到一个通知。你发两个,你收到两个。你准确的问题是什么? – auco