我有以下NSDictionary:
NSDictionary *myDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
但是当我尝试使用valueForKey查询字典时,我总是得到nil值。例如:
po [myDict valueForKey:@"value1"]
nil
如果使用objectForKey查询字典,一切都很好..
po [myDict objectForKey:@"key1"]
value1
当我使用valueForKey查询字典时,你们中的任何人都知道为什么我会得到nil?
我非常感谢你的帮助。
答案 0 :(得分:1)
valueForKey:
只应在明确且需要使用键值编码时使用。你仍然需要传入一个键,但是你传递了一个值。由于value1
字典中没有键,因此它会正确返回nil
。
但是,除非你有正当理由,否则不要使用valueForKey:
。
objectForKey:
上的 key1
有效,因为您在字典中实际拥有key1
的密钥。
如果您致电objectForKey:@"value1"
,它也会返回nil
。