Fwd: Help with implementing delegates






I am having problems with implementing delegates, and I'm sure I'm doing something silly. Would appreciate help from the experts..... I can get a simple case to work, where I invoke a delegate method with no parameters passed, but I can't get the case where I invoke the delegate method and want to pass an additional object (or flag).

I've written small program to illustrate my problem. I have two classes, say Foo and Bar. The code allows a user to push a button on a screen, which starts a process in Foo (a controller type class). Foo starts a progress bar item on the screen, and calls a method in class Bar (model class). The method in Bar fires up a timer (NSTimer) and returns immediately. When the timer expires, I want to communicate to class Foo that the event was completed.

I am using a design pattern that was available online, and for the most part everything seems to be working. In the code below, I fail the condition where I check to see if "_delegate" responds to the selector (test:didFinish:).

- (void) doneWithTimer: (NSTimer *) aTimer
{

NSLog(@"Bar: time over....");


if ([_delegate respondsToSelector:@selector(test:didFinish:) ])
{
[_delegate test: self didFinish: true];
}
else
{
[NSException raise:NSInternalInconsistencyException
format:@"Foo doesn't respond to
selector"];
}

}


If I have a simple method with no additional parameters, the code works fine. So, the following works....

- (void) doneWithTimer: (NSTimer *) aTimer
{

NSLog(@"Bar: time over....");


if ([_delegate respondsToSelector:@selector(test:) ])
{
[_delegate test: self];
...

}
else
{
[NSException raise:NSInternalInconsistencyException
format:@"Foo doesn't respond to
selector"];
}

}


In Foo, I have set up the following delegate method

-(void) test: (dgtest *) sender:didFinish: (BOOL) complete
{
NSLog(@"time over....%d");
[progress stopAnimation:nil];
}

(and of course if I drop ":didFinish: (BOOL) complete", and run the program passing no parameters then delegates seem to work).

would appreciate any help.

regards,

Albert

____

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@xxxxxxxxxxxxxxx)

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/maillists%40codeha.us

This email sent to maillists@xxxxxxxxx



Privacy