2015-10-17 115 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的數據結構,以提供更快排序枚舉的鍵/值存儲。