On Sep 29, 2011, at 5:38 PM, Jamie Pinkham wrote:

> On Sep 29, 2011, at 6:22 PM, Koen van der Drift <[email protected]> 
> wrote:
> 
>> I'm trying to get the delegate of a window that is controlled by a custom 
>> NSWindowController as follows:  
>> 
>>     NSWindow *win = [self window]; 
>>     id <MyControllerDelegate> del = [win delegate];
>> 
>> But get the following warning:
>> 
>> warning: Semantic Issue: Initializing 'id<MyControllerDelegate>' with an 
>> expression of incompatible type 'id<NSWindowDelegate>'
>> 
>> What am I doing wrong?
> 
> The NSWindow delegate's type is id<NSWindowDelegate> not  id 
> <MyControllerDelegate>. This is the compiler telling you the types don't 
> match. 

In particular, "id <whatever>" is an id (a pointer to an object of 
indeterminate type) which is known to conform to a _protocol_ called "whatever".

I think you have confused NSWindowDelegate for some arbitrary placeholder, 
perhaps for a class name.

If your delegate class is call MyControllerDelegate, then you want:

        MyControllerDelegate* del = [win delegate];

And the definition of MyControllerDelegate should have declared its conformance 
to the NSWindowDelegate protocol.

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [email protected]

Reply via email to