Я надеюсь, что кто-то может помочь с моей проблемой уведомлений. У меня есть уведомление, которое выглядит правильно, но не доставляется должным образом. Я разрабатываю приложение на основе документов. Класс делегата/документа публикует уведомление при чтении из сохраненного файла:
[[NSNotificationCenter defaultCenter] postNotificationName:notifyBsplinePolyOpened object:self];
Ведение журнала говорит мне, что эта строка достигается всякий раз, когда я открываю сохраненный документ.
В классе DrawView у меня есть наблюдатели для уведомления windowOpen и уведомления об открытии файла bsplinePoly:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(mainWindowOpen:)
name:NSWindowDidBecomeMainNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(savedBspline:)
name:notifyBsplinePolyOpened
object:nil];
- (void) mainWindowOpen:(NSNotification*) note
{
NSLog(@"Window opened");
_mainWindow = [note object];
}
- (void) savedBspline:(NSNotification*) note
{
NSLog(@"savedBspline called");
NSLog(@"note is %@", [note name]);
}
Поведение странное. Когда я сохраняю и закрываю главное окно, а затем снова открываю его, я получаю сообщение «Окно открыто», но не сообщение «вызвано savedBspline». Если я оставлю главное окно открытым и открою ранее сохраненный сеанс, я получу сообщение «Окно открыто» и сообщение «вызвано сохраненноеBspline».
Я искал онлайн-обсуждение и документацию Apple DevCenter, но не видел этой проблемы.