2010-02-13 32 views
6

Tôi đã tự hỏi nếu ai đó có thể chỉ cho tôi cách sắp xếp một số NSDictionary; Tôi muốn đọc nó bắt đầu từ mục nhập cuối cùng, vì khóa là Date + Time và tôi muốn có thể thêm nó vào một NSMutableString. Tôi đã có thể đọc nó bằng cách sử dụng một điều tra viên nhưng tôi không nhận được kết quả tôi muốn.Sắp xếp NSDictionary

Cảm ơn

Trả lời

13

Đối với yêu cầu của bạn một cách đơn giản nhất là để tạo ra một mảng mới từ các phím, sắp xếp đó, sau đó sử dụng mảng để tham khảo các mục từ điển gốc.

(Lưu ý myComparison là phương pháp của riêng bạn sẽ so sánh hai khóa).

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

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

tôi đã tổng hợp một số những gợi ý khác trên StackOverflow về sắp xếp một NSDictionary vào một cái gì đó rất nhỏ gọn mà sẽ sort theo thứ tự abc. Tôi có một tập tin Plist trong 'đường dẫn' mà tôi tải vào bộ nhớ và muốn đổ.

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); 
} 
Các vấn đề liên quan