是否订购了NSDictionary中的键和值?

13 iphone cocoa-touch nsdictionary uikit

我的意思是:NSDictionary中的键和值的顺序是否始终与初始化NSDictionary时指定的顺序相同?或者,如果我真的需要知道密钥的顺序,我应该更好地保持单独的NSArray吗?

Ada*_*eld 19

不,他们没有订购.只要您不添加或删除字典中的任何元素,它们将保持相同的顺序,但只要添加或删除元素,新订单就会完全不同.

如果需要订购键/值,请改用NSArray(或其他一些有序数据结构).

  • @ kraag22:在`NSDictionary`文档中没有任何地方对订单作出任何承诺或保证 - 它只是说它提供了一个"管理键和值的不可变关联的对象的编程接口".`-allKeys`和`-allValues`消息的文档确实调用了这些方法返回的顺序没有被定义,尽管将其更明确地用于枚举其他方法可能不是一个坏主意.字典元素. (2认同)