FROM : Joakim Danielson
DATE : Fri Nov 19 23:56:49 2004
Hi
This is not a direct answer to your question but there is a good
article at Cocoa Dev Central about this,
http://www.cocoadevcentral.com/articles/000075.php
Joakim
On 2004-11-19, at 20.51, Bruce Toback wrote:
> Hi all,
>
> Is there some developer information somewhere on the best way to
> implement delegation in my own frameworks?
>
> Currently, when one of my objects with a delegate intends to call a
> delegate method, it does something like this:
>
> if ([delegate
> respondsToSelector:@selector(myObject:wantsToTellYou:)])
> [delegate myObject: self wantsToTellYou: something];
>
> There are three things that seem to be wrong with this:
>
> 1. I'm testing to see if the delegate implements a method on every
> message to the delegate. Obviously, I could cache the results of
> the test the first time through. Is that worth the effort for
> methods that aren't called in tight loops or something?
>
> 2. Because delegate is declared as id in my object, I get a compiler
> warning on every delegate call. This is annoying.
>
> 3. Although it hasn't come up yet, the compiler assumes that the
> return type of the delegate method is id. That may not always
> be the case (and isn't now, but all delegate methods I've
> defined up to now return void).
>
> To get around 2 and 3, should I just declare a protocol, and then
> declare the delegate as a pointer to an object implementing that
> protocol -- even though the protocol is informal? Is there any
> downside to that? Or is there a widely-accepted set of idioms used to
> implement delegation, and I'm just missing them?
>
> -- Bruce
>
> -----------------------------------------------------------------------
> -
> Bruce Toback (602) 996-8601| My candle burns at both ends;
> OPT, Inc. (800) 858-4507| It will not last the night;
> 11801 N. Tatum Blvd. Ste. 142 | But ah, my foes, and oh, my friends
> -
> Phoenix AZ 85028 | It gives a lovely light.
> <email_removed> | -- Edna St. Vincent Millay
>
> _______________________________________________
> MacOSX-dev mailing list
> <email_removed>
> http://www.omnigroup.com/mailman/listinfo/macosx-dev
>
DATE : Fri Nov 19 23:56:49 2004
Hi
This is not a direct answer to your question but there is a good
article at Cocoa Dev Central about this,
http://www.cocoadevcentral.com/articles/000075.php
Joakim
On 2004-11-19, at 20.51, Bruce Toback wrote:
> Hi all,
>
> Is there some developer information somewhere on the best way to
> implement delegation in my own frameworks?
>
> Currently, when one of my objects with a delegate intends to call a
> delegate method, it does something like this:
>
> if ([delegate
> respondsToSelector:@selector(myObject:wantsToTellYou:)])
> [delegate myObject: self wantsToTellYou: something];
>
> There are three things that seem to be wrong with this:
>
> 1. I'm testing to see if the delegate implements a method on every
> message to the delegate. Obviously, I could cache the results of
> the test the first time through. Is that worth the effort for
> methods that aren't called in tight loops or something?
>
> 2. Because delegate is declared as id in my object, I get a compiler
> warning on every delegate call. This is annoying.
>
> 3. Although it hasn't come up yet, the compiler assumes that the
> return type of the delegate method is id. That may not always
> be the case (and isn't now, but all delegate methods I've
> defined up to now return void).
>
> To get around 2 and 3, should I just declare a protocol, and then
> declare the delegate as a pointer to an object implementing that
> protocol -- even though the protocol is informal? Is there any
> downside to that? Or is there a widely-accepted set of idioms used to
> implement delegation, and I'm just missing them?
>
> -- Bruce
>
> -----------------------------------------------------------------------
> -
> Bruce Toback (602) 996-8601| My candle burns at both ends;
> OPT, Inc. (800) 858-4507| It will not last the night;
> 11801 N. Tatum Blvd. Ste. 142 | But ah, my foes, and oh, my friends
> -
> Phoenix AZ 85028 | It gives a lovely light.
> <email_removed> | -- Edna St. Vincent Millay
>
> _______________________________________________
> MacOSX-dev mailing list
> <email_removed>
> http://www.omnigroup.com/mailman/listinfo/macosx-dev
>
| Related mails | Author | Date |
|---|---|---|
| Bruce Toback | Nov 19, 20:51 | |
| Joakim Danielson | Nov 19, 23:56 | |
| Bruce Toback | Nov 20, 00:08 | |
| Bruce Toback | Nov 20, 00:12 | |
| Douglas A. Welton | Nov 20, 14:28 | |
| Tobias Peciva | Nov 21, 21:35 | |
| Fritz Anderson | Nov 23, 21:15 |






Cocoa mail archive

