> 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