Re: Delegate & Notification
Re: Delegate & Notification
- Subject: Re: Delegate & Notification
- From: Bing Li <email@hidden>
- Date: Mon, 16 May 2011 16:49:37 +0800
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 <email@hidden> 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 (email@hidden)
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:
This email sent to email@hidden