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