为什么我的来自json的NSDictionary像这样排序?

时间:2015-05-27 07:34:10

标签: ios json swift sorting nsdictionary

当我接受电话时,我正试图在NSDictionary中获取与json相同的排序数据。我不知道为什么我得到这样的数据?如果有办法,该怎么办?请帮助!!

2 个答案:

答案 0 :(得分:5)

NSDictionary始终没有订单。如果您枚举或打印它,它将以基本随机的顺序出现。如果你想订购,你必须自己获取密钥和值并对它们进行排序,或者使用NSDictionary之外的其他东西。

答案 1 :(得分:1)

字典未排序。您必须创建一个数组以包含所有字典元素才能对其进行排序。在您的情况下,要获得按升序排列的键数组

let sortedKeys = (dictionary.allKeys as NSArray).sortedArrayUsingDescriptors(
  [NSSortDescriptor(key:"self" ascending:true)])

当然,如果你使用一个真正的Swift词典,你可以更优雅地写这个:

let sortedKeys = Array(dictionary.keys).sorted(<)