Tôi có một số NSMutableDictionary
với các phím chuỗi và mỗi khóa có một mảng riêng. Tôi muốn sắp xếp lại từ điển với các khóa có giá trị theo thứ tự abc. Tôi có thể làm cái này như thế nào?Tôi có thể sắp xếp NSMutableDictionary với giá trị khóa như thế nào?
Trả lời
Từ điển được phân loại theo định nghĩa.
Để lặp qua các phím theo thứ tự cụ thể, bạn có thể sắp xếp một mảng chứa các khóa của từ điển.
NSArray *keys = [theDictionary allKeys];
NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(compareMethod:)];
Có một số phương pháp khác sorted...
, ví dụ: phân loại với NSComparator
. Có một cái nhìn here.
Sử dụng này một
NSArray *myKeys = [Dict allKeys];
NSArray *sortedKeys = [myKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSMutableArray *sortedValues = [[[NSMutableArray alloc] init] autorelease];
for(id key in sortedKeys) {
id object = [Dict objectForKey:key];
[sortedValues addObject:object];
}
Tôi đã sử dụng mã này để truy xuất từ điển được sắp xếp nhưng vẫn nhận được nó không được phân loại 'mã NSMutableDictionary * dicProjectListSorted = [Từ điển NSMutableDictionary]; NSArray * sortedKeys = [keys sortArrayUsingSelector: @selector (localizedCaseInsensitiveCompare :)]; NSMutableArray * selectedValues = [[[NSMutableArray alloc] init] autorelease]; cho (id trong các khóa được sắp xếp) { id object = [dicProjectList objectForKey: key]; [selectedValues addObject: object]; [dicProjectListSorted setObject: sortedValues forKey: key]; } –
từ mã này u nhận được giá trị khóa ngắn và thn theo giá trị khóa u lấy dữ liệu của bạn – Ron
selectedKeys nhận được đúng như sắp xếp nhưng khi tôi cố gắng tạo lại từ điển (dicProjectListSorted) bên trong một vòng lặp tôi nhận được nó unsorted ?? –
NSDictionary *yourDictionary;
NSArray *sortedKeys = [yourDictionary.allKeys sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]]];
NSArray *sortedValues = [yourDictionary objectsForKeys:sortedKeys notFoundMarker:@""];
tôi đã Unsorted NSMutableDictionary với giá trị quan trọng và tôi muốn để lại cùng một loại NSMutableDictionary với các giá trị quan trọng theo thứ tự abc. Có thể với NSMutableDictionary? –