On Dec 30, 2008, at 9:50 AM, Steve Cronin wrote:
It now seems to me that while attaching my tweak to the header does in fact silence the compiler, it is overly broad -> 'sloppy'. Why create a category on the entire hierarchy of NSObject? Why create the possibility (albeit remote) of category collision?

As noted in my original post, the pattern I demonstrated was directly derived from the delegation pattern in the AppKit.

Note that there is *no* implementation. It is just a declaration. Thus, there is no risk of a category collision.

A more targeted solution is:

//subclass needs to provide for dynamic handlers
@interface MyClass (RespondsToSelector)
// see also usages of -performSelector()
- (id) foo2:(id)param;
@end

This solution, combined with Ken's proposal to use -performSelector for the 'no parameters' cases, seems to give me a good solution.

If you have to use -performSelector: (or one of its variants) to avoid a compiler warning, you are doing it wrong.

(Notice how Bill's example appears to presume this 'easy' use of - performSelector()!)

It presumes no such thing.

The whole point of declaring the methods is so that you can invoke the code using normal method invocation syntax without the compiler complaining:

        [bob foo2: fred];

b.bum
_______________________________________________

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

Reply via email to