Dear all, I am learning how to use delegate & notification.
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 Another object, Monitor, registered the notification, "Done". .... @synthesize delegate; - (void) IHaveDone: (NSNotification *) notification { NSLog(@"OK"); if ([self.delegate respondsToSelector:@selector(IHaveDone:)]) { [self.delegate IHaveDone:self]; } } - (void) setUpNotification: (NSString *) notification withSelector: (SEL) methodName { [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:methodName name:notification object:nil]; } - (void) registerNotifications { [self setUpNotification:@"Done" withSelector:@selector(IHaveDone:)]; } - (id) init { if (self = [super init]) { [self registerNotifications]; } return self; } .... A delegate, MonitorDelegate, is implemented as below. .... @class Monitor; @protocol MonitorDelegate @optional - (void) IHaveDone: (Monitor *) app; @end .... An object called, AppController, implements the delegate. .... @interface AppController : NSObject <MonitorDelegate> { Monitor *monitor; } @property (nonatomic, retain) Monitor *monitor; @implementation AppController @synthesize monitor; - (void) IHaveDone:(Monitor *)app { NSLog(@"I know you have done!"); } - (void) sayHi { NSLog(@"Hi"); } - (id) init { self.monitor = [[Monitor alloc] init]; self.monitor.delegate = self; [self.monitor.delegate sayHi]; return self; } .... In the main code, the above objects are utilized as follows. WorkingApp *app = [[WorkingApp alloc] init]; AppController *controller = [[AppController alloc] init]; [app Print]; char s[100]; scanf("%s", s); [app release]; [controller release]; However, even though the line, "I am doing a tough job!", is displayed, the line, "I know you have done!", is NOT shown! I cannot figure out what problems exist. Could you please give me a hand on this? I appreciate so much for your help! Best, Bing _______________________________________________ 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