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