2015-10-17 64 views
0

我有NSDictionary充满了许多对象。我已经按照所需的模式对键进行了排序,现在我只有在新的NSArray中才有键。如何应用更改以使数组中元素的顺序反映在字典中?
例如, NSArray -> ["D" , "B" , "A" , "C"]这个命令我想应用到字典中的键。根据NSArray元素排序NSDictionary键

NSDictionary -> {{"A" : <something>} , {"B" : <something>} , {"C" : <something>} , {"D" : <something>}} 
+4

词典不可排序。请澄清你的意思。我知道你有一个数组中的键,但是一旦你在数组中有键,你不知道你要做什么。 – rmaddy

+0

然后我想按照这个顺序排序或制作新的NSDictionary。 – Slavcho

+2

如前所述,字典没有秩序的概念。保持你的关键数组是你想要的任何顺序。您可以使用该数组以按照所需顺序从字典访问值。 – rmaddy

回答

2

你不知道。您遍历数组中的键,然后从字典中提取数据。

for (NSString *key in sortedKeys) { 
    id value = dictionary[key]; 
    // do something... 
} 

如果您需要排序,您可以考虑使用NSOrderedSet或滚动您自己的数据结构来完成此操作。例如,我创建了使用NSIndexSet和NSDictionary的数据结构,以提供更快排序枚举的键/值存储。