NSDictionary和字符串文字键

时间:2015-06-12 13:43:23

标签: ios objective-c nsstring nsdictionary nsmutabledictionary

@"key"中使用setObject(id):forKey(id)之类的字符串文字是否只能起作用,因为编译器会优化字符串文字的所有实例以指向同一个对象?或者检索具有objectForKey(id)的对象实际比较密钥的字符串值?

如果NSDictionary是由JSON解析等外部函数创建的,该怎么办?现在,当我使用字符串文字访问对象时,它将是编译器第一次看到键字符串,并且它不会是JSON解析器在创建字典时使用的相同对象。

从外部创建的字典访问值时,我应该使用valueForKey(NSString *)吗?

1 个答案:

答案 0 :(得分:2)

NSDictionary是一个哈希表,这意味着首先计算一些函数,通过键来查找某些数组中的索引值(称为哈希码,这是一个快速操作)。 然后,由于某些键可以产生相同的哈希值,因此将此哈希码的所有键与我们要搜索的键进行比较。

相关问题