【发布时间】:2013-07-31 08:52:35
【问题描述】:
我正在与一个 API 通信,该 API 将 NSDictionary 作为响应,其中包含我的应用所需的数据(数据基本上是一个提要)。此数据按最新到最旧排序,最新的项目位于 NSDictionary 的前面。
当我用for (NSString *key in articles) { ... } 快速枚举它们时,顺序似乎是随机的,因此我对它们进行操作的顺序并不是我想要的从最新到最旧的顺序,而是完全随机的。
我已经阅读,当使用 NSDictionary 的快速枚举时,不能保证按顺序遍历数组。
但是,我需要它。如何让它按照 NSDictionary 所在的顺序遍历 NSDictionary?
【问题讨论】:
-
那就自己写字典吧。如果 CF/NSDictionary 说他们不能保证顺序,那么他们不能保证顺序。编写一个好的排序算法可能并不难,但如果你需要它们以插入顺序,如果不以某种方式标记对象可能会很棘手。
-
您对 API 有任何意见吗?听起来它应该向您发送一个数组,而不是字典。
标签: ios objective-c nsdictionary for-in-loop fast-enumeration