6

我想知道 NSDictionary 方法 allKeys 背后的决定是什么,返回一个 NSArray,而不是一个 NSSet,这会更有意义,因为不能保证返回数组的顺序,而且键是唯一的

4

2 回答 2

1

而且,除了贾斯汀所说的,如果你真的想要一个字典键列表,你必须获取 NSSet,然后将其转换为 NSArray。如果您只是想测试密钥的存在,OTOH,您可以直接针对字典而不需要集合。

于 2013-07-30T19:41:41.397 回答
1

好吧,就像每个人都在猜测...

正如OP所说,每个键都是唯一的。对于数组或集合情况,字典代码必须收集键 - 成本适用于两者。在集合的情况下,每个键都必须添加到集合中,这涉及(事实证明毫无意义)成员资格测试,而在数组情况下不需要成员资格测试 - 添加到数组的成本应该小于添加到集合中。阵列获胜。

于 2013-07-30T20:11:52.963 回答