при каких обстоятельствах сообщение НЕ будет отправлено? - PullRequest
0 голосов
/ 17 ноября 2009

Я просто не понимаю, я использовал уведомления триллион раз, но сегодня я не могу получать уведомления для отправки от определенного объекта. Это в контроллере вида ...

- (void)buttonPressed:(UIButton*)sender {
NSLog(@"buttonPressed");
[[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:self];
}

и это в другом контроллере представления (в init) ..

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test:) name:@"test" object:nil];

и метод ..

-(void)test:(NSNotification *)notification{
NSLog(@"it works! ");
}

... просто стандартные вещи, теперь, если я отправляю уведомление от любого другого объекта, он работает нормально, просто не буду публиковать с этого одного контроллера представления! Он даже регистрирует «ButtonPressed», поэтому кнопка не сломана. Я просто не понимаю.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2009

Вы пытались передать nil вместо self для объекта: аргумент при отправке? Я думал, что ноль означает, что вы получите все уведомления с этим именем, но это может быть не так.

Кроме того, попробуйте подписаться на уведомление непосредственно перед отправкой и посмотрите, будет ли оно вызвано.

0 голосов
/ 17 ноября 2009

Это контроллер представления, который вы создали перетаскиванием в Интерфейсном Разработчике? Если это так, то метод -init вызываться не будет (будет -initWithCoder). Однако, если вам нужно настроить вещи из интерфейса, переопределите метод -awakeFromNib и вставьте туда свой установочный код.

...