iOS:填充的 NSDictionary valueForKey 返回 nil

iOS: populated NSDictionary valueForKey is returning nil

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

非常感谢你的帮助。

valueForKey: 只应在您明确需要使用键值编码时使用。您仍然需要传递一个键,但您传递的是一个值。由于value1的字典中没有key,所以正确的是returns nil.

但再次强调,除非你有正当理由,否则不要使用 valueForKey:

objectForKey:key1 上有效,因为你实际上在字典中有一个键 key1

如果你要调用 objectForKey:@"value1" 它也会 return nil.