On Oct 4, 2013, at 9:59 AM, Matt Neuburg <m...@tidbits.com> wrote:

> Or, (2) inherit NSObject protocol back in the protocol definition:
> 
> @protocol MyCellDelegate<NSObject>
> @end

You should do this.

> But why is either of those necessary? Surely an id<MyCellDelegate> is, by 
> definition, an id

id<MyCellDelegate> is more specific than id, and so the compiler warns about 
calling methods that are not declared in MyCellDelegate.

> - which inherits from NSObject

id does not inherit from NSObject, it is just a generic object pointer. In many 
ways its a “get out of the type system free” card. But if you add type 
information to id by restricting it via a protocol, then you are requesting 
type checking.

> , and thus should solve the problem, just like casting to id. It is as if 
> id<MyCellDelegate> is not an id, which makes no sense to me. Is this a Clang 
> bug? Or am I just missing some fundamental truth?

--
David Duncan

_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to