誰かが私の通知の問題を手伝ってくれることを願っています。正しく設定されているように見える通知がありますが、期待どおりに配信されません。ドキュメントベースのアプリを開発しています。デリゲート/ドキュメントクラスは、保存されたファイルから読み取るときに通知を投稿します。
[[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]);
}
振る舞いは奇妙です。メインウィンドウを保存して閉じて再度開くと、「Windowopened」メッセージが表示されますが「savedBsplinecalled」メッセージは表示されません。メインウィンドウを開いたままにして、以前に保存したセッションを開くと、「ウィンドウが開いています」というメッセージと「savedBsplineが呼び出されました」というメッセージが表示されます。
オンラインディスカッションとAppleDevCenterのドキュメントを検索しましたが、この問題は発生していません。