Re: Type comparison warning
Re: Type comparison warning
- Subject: Re: Type comparison warning
- From: Dave Carrigan <email@hidden>
- Date: Thu, 30 Oct 2008 10:30:35 -0700
On Oct 30, 2008, at 10:12 AM, DKJ wrote:
I'm probably missing something simple, but I don't understand why
this line:
return (i == -1 ? [NSNull null] : [NSNumber numberWithInteger:i]);
(where i is an NSInteger) produces this warning:
"comparison of distinct Objective-C types lacks a cast"
(The return type of the method is id.)
The ternary conditional operator requires that both sides of the : are
the same type. In your case, one is a NSNull* and one is a NSNumber*,
and C has no idea that a NSNull* and a NSNumber* are in any way the
same kind of pointer, which means that it has no idea what the type of
the overall statement is. This would compile:
return (i == -1 ? (id)[NSNull null] : (id)[NSNumber
numberWithInteger:i]);
--
Dave Carrigan
email@hidden
Seattle, WA, USA
Attachment:
PGP.sig
Description: This is a digitally signed message part
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden