On Mar 15, 2010, at 3:35 PM, David Duncan wrote:
> On Mar 15, 2010, at 3:22 PM, Jeff Laing wrote:
>> As I recall, sending variables of type id<YourProtocol> useful messages like 
>> retain and release generate a compiler warning, whereas 
>> NSObject<YourProtocol> are fine.
>> 
>> I could be wrong on this, but I definitely recall thinking it was a stupid 
>> compiler behavior.
> 
> This is because you didn't declare your protocol as extending the NSObject 
> protocol. If you do something like this:
> 
> @protocol MyProtocol<NSObject>
> 
> Then you can call all the NSObject stuff without warning.

Well, some of the NSObject stuff. NSObject protocol is a subset of NSObject 
class. 

If you only use the basics - like retain/release/autorelease, 
respondsToSelector:, performSelector - then NSObject protocol is sufficient. 
Other more recent additions are part of NSObject class only.


-- 
Greg Parker     gpar...@apple.com     Runtime Wrangler


_______________________________________________

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