我想知道NSDictionary方法allKeys背后的决定是什么,返回一个NSArray而不是NSSet,这会更有意义,因为不能保证返回数组的顺序,而且,一个键是唯一的< / p>
答案 0 :(得分:1)
除了Justin所说的,如果你真的想要一个字典键列表,你必须得到NSSet,然后将其转换为NSArray。如果你只想测试密钥存在,OTOH,你可以直接反对字典,不需要设置。
答案 1 :(得分:1)
好像每个人都在猜测......
正如OP所说,每一把钥匙都是独一无二的。对于数组或集合大小写,字典代码必须收集密钥 - 其成本适用于两者。在设置的情况下,每个密钥都必须添加到集合中,这涉及到(事实证明是无意义的)成员资格测试,而在数组情况下不需要成员资格测试 - 添加到数组的成本应小于添加到一组。阵列获胜。