> On Feb 8, 2016, at 7:15 AM, Dave <d...@looktowindward.com> wrote:
> 
> Look at this code:
> 
> myUserInfo = [self.pUserIDDict objectForKey: theUserInfo.pUserID];
> if (myUserInfo != nil)
>       {
>       LTWAssertAlways(@"myUserInfo - Dupe ID!!!!!!!!!!");
>       }
> 
> if (theUserInfo.pUserID != nil)                                               
>                                                 //Remove this Line for Warning
>       [self.pUserIDDict setObject: theUserInfo forKey: theUserInfo.pUserID];  
>         //Warning on this line!
> } 
> 
> 
> I get a warning saying that Key argument for setObjectForKey cannot be nil? I 
> am wondering why it suddenly started moaning about this here and not other 
> places were it is used and could be nil, like this:
> 
> myUserInfo = [self.pUserIDDict objectForKey: theUserInfo.pUserID];
> 
> This is the only place I’ve seen this warning and I’m using keys that could 
> be nil in lots of places (without any problems as I obviously make sure that 
> I don’t pass a nil…..

In the case where you do not see a warning, you are calling -[NSDictionary 
objectForKey:] which accepts a nil key value (returning nil).

In the case where you do see a warning, you are calling -[NSMutableDictionary 
setObject:forKey:] which does not accept a nil key value (nor a nil object 
value) and will throw an exception if you attempt to do so at runtime.


_______________________________________________

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