iOS:填充的NSDictionary valueForKey返回nil

时间:2018-01-19 00:02:45

标签: objective-c dictionary nsdictionary

我有以下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?

我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

valueForKey:只应在明确且需要使用键值编码时使用。你仍然需要传入一个键,但是你传递了一个值。由于value1字典中没有键,因此它会正确返回nil

但是,除非你有正当理由,否则不要使用valueForKey:

objectForKey:上的

key1有效,因为您在字典中实际拥有key1的密钥。

如果您致电objectForKey:@"value1",它也会返回nil