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 PROTECTED] Seattle, WA, USA
PGP.sig
Description: This is a digitally signed message part
_______________________________________________ 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 [EMAIL PROTECTED]