2014-03-13 48 views
0

我有一個NSArray名爲self.ownerOrderArray,它記錄這樣的:排序基於另一陣列的對象(實際上密鑰)一個NSDictionary

order array is (
"Date Of Birth", 
republic, 
Marriage, 
Currency, 
Incentive, 
"Interview Dates", 
hobbies, 
"Tanki Online", 
skills, 
"Sal Range" 
) 

我也有一個NSMutableDictionary作爲self.tempDict哪些日誌:

日誌是這樣的:

tempDict dictionary is>>>>> { 
Currency = 56789; 
"Date Of Birth" = "2014-03-15"; 
Incentive = 5; 
"Interview Dates" = "Jan 20"; 
Marriage = "2014-03-29"; 
"Sal Range" = "|#|0 - 10k|#|10k - 20k|#|20k -30k|#|30k-40k|#|40k-50k|#|"; 
"Tanki Online" = Thunder; 
hobbies = Cricket; 
republic = 26jan; 
skills = "|#|PHP|#|Java|#|Python|#|objctive-c|#|c|#|c++|#|objective-c++|#|c#|#|"; 
} 

我怎樣才能得到上面的字典,字典的鍵/值以相同的順序進行排序爲self.ownerOrderArray

回答

1

由於字典沒有訂單,因此無法獲取以相同順序記錄值的字典。

你可以做的是獲得一個值的數組,它使用objectsForKeys:notFoundMarker:來匹配你的密鑰數組的順序。如果你有所有的鍵,那麼找不到的標記不是問題,只需將其設置爲[NSNull null]即可。如果你沒有所有的鍵,那麼你需要注意結果數組中的空值。

0

根據Wain的說法,「你無法得到一本字典,它按照你給出的相同順序記錄這些值。

您首先按照字典的升序或降序對所有鍵進行排序,之後您將獲取排序數組鍵索引上的值。像這樣

NSDictionary *valuesDictionary = //Your Response Dictionary ; 

NSArray *sortedKeys = [[dict allKeys] sortedArrayUsingSelector: @selector(compare:)]; 

NSMutableDictionary *orderedDictionary = [NSMutableDictionary dictionary]; 

for (NSString *key in sortedKeys){ 
      [orderedDictionary setObject:[valuesDictionary objectForKey: key] forKey:key]; 
} 

應該爲你工作。

+1

詞典沒有順序。無論您在什麼順序添加項目... – Wain