2010-02-13 13 views
6

Zastanawiam się, czy ktoś może mi pokazać, jak sortować NSDictionary; Chcę go przeczytać od ostatniego wpisu, ponieważ kluczem jest Date + Time i chcę go dołączyć do NSMutableString. Byłem w stanie odczytać go za pomocą modułu wyliczającego, ale nie otrzymałem wyników, których chcę.Sortowanie NSDictionary

Dzięki

Odpowiedz

13

Dla wymagań najłatwiej jest stworzyć nową tablicę z przyciskami, że rodzaj, a następnie użyć tablicę odwołać przedmiotów z oryginalnego słownika.

(Uwaga: myComparison to Twoja własna metoda, która porówna dwa klucze).

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

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

Mam agregowane niektóre inne sugestie na StackOverflow na sortowaniu się NSDictionary w coś bardzo kompaktowej że będą sortować alfabetycznie. Mam plik Plist w "ścieżce", którą wczytuję do pamięci i chcę zrzucić.

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); 
}