Dear Michael, Chase, Seth and all, I appreciate so much for your help! After changing the WorkingApp as follows, the notification works. One of the reasons I made such a mistake is that I could not get sufficient materials to learn the techniques although I have got more than 10 books about Cocoa. I hope Apple could improve on this.
import "WorkingApp.h" @implementation WorkingApp - (void) Print { NSLog(@"I am doing a tough job!"); [[NSNotificationCenter defaultCenter] postNotificationName:@"Done" object:self]; } @end However, when trying to use asynchronous notification, I got problems again. Now WorkingApp is updated as follows. import "WorkingApp.h" @implementation WorkingApp - (void) Print { NSLog(@"I am doing a tough job!"); // [[[NSNotificationQueue alloc] initWithNotificationCenter:[NSNotificationCenter defaultCenter]] enqueueNotification: [NSNotification notificationWithName:@"Done" object:self] postingStyle:NSPostNow]; // This is also sychronous. [[[NSNotificationQueue alloc] initWithNotificationCenter:[NSNotificationCenter defaultCenter]] enqueueNotification: [NSNotification notificationWithName:@"Done" object:self] postingStyle:NSPostWhenIdle]; NSLog(@"I need to leave!"); } The commented line is the same as a synchronous notification. It works. But the later line must be an asynchronous notification. However, the AppController does not get notified. I don't understand what's wrong with the code. Could you give me some hints? Best regards, Bing @end On Mon, May 16, 2011 at 7:47 AM, Michael Babin <mba...@orderndev.com> wrote: > On May 15, 2011, at 5:31 PM, Bing Li wrote: > > An object, WorkingApp, prints a line and posts a notification as follows. > > import "WorkingApp.h" > > @implementation WorkingApp > > - (void) Print > { > NSLog(@"I am doing a tough job!"); > [[NSNotificationCenter defaultCenter] postNotificationName:@"Done" > object:self]; > } > > @end > > > > - (void) setUpNotification: (NSString *) notification withSelector: > (SEL) methodName > { > [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self > selector:methodName name:notification object:nil]; > } > > > Why are you adding the observer to NSWorkspace's notification center, as > opposed to NSNotificationCenter's default center (where you are posting the > notification)? > > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com