2010-02-13 62 views
6

我想知道如果有人能告訴我如何排序NSDictionary;我想從最後一項開始讀取它,因爲關鍵是Date + Time,我希望能夠將它附加到NSMutableString。我能夠使用枚舉器讀取它,但我沒有得到我想要的結果。排序NSDictionary

感謝

回答

13

您的要求最簡單的方法是創建密鑰的新陣,那種,然後使用數組從原來的字典引用的項目。

(注意myComparison是你自己的方法,將比較兩個鍵)。

NSMutableArray* tempArray = [NSMutableArray arrayWithArray:[myDict allKeys]]; 
[tempArray sortedArrayUsingSelector:@selector(myComparison:)]; 

for (Foo* f in tempArray) 
{ 
    Value* val = [myDict objectForKey:f]; 
} 
0

我已經聚集了一些StackOverflow上的其他建議排序上一個NSDictionary到的東西非常緊湊,即會按字母順序排序。我在'路徑'中有一個Plist文件,我將其加載到內存中並希望轉儲。

NSDictionary *glossary = [NSDictionary dictionaryWithContentsOfFile: path]; 
NSArray   *array1 = [[glossary allKeys] sortedArrayUsingDescriptors:@[ [NSSortDescriptor sortDescriptorWithKey:@"" ascending:YES selector:@selector(localizedStandardCompare:)] ]]; 
for (int i=0; i<array1.count; i++) 
{ 
    NSString* key = [array1 objectAtIndex:i]; 
    NSString* value = [glossary objectForKey:key]; 
    NSLog(@"Key=%@, Value=%@", key, value); 
}