Tôi đang đấu tranh với việc cố gắng sắp xếp một loạt các từ điển.Cách tốt nhất để sắp xếp một NSArray của các đối tượng NSDictionary?
từ điển của tôi có một vài giá trị của lãi suất, giá cả, sự nổi tiếng, vv
Bất kỳ lời đề nghị?
Tôi đang đấu tranh với việc cố gắng sắp xếp một loạt các từ điển.Cách tốt nhất để sắp xếp một NSArray của các đối tượng NSDictionary?
từ điển của tôi có một vài giá trị của lãi suất, giá cả, sự nổi tiếng, vv
Bất kỳ lời đề nghị?
Sử dụng NSSortDescriptor
như thế này ..
NSSortDescriptor * descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES];
stories = [stories sortedArrayUsingDescriptors:@[descriptor]];
recent = [stories copy];
stories
là mảng bạn muốn sắp xếp. recent
là một mảng có thể thay đổi khác đã sắp xếp các giá trị từ điển. Thay đổi số @"interest"
bằng giá trị khóa mà bạn phải sắp xếp.
All the best
Viết hàm sắp xếp so sánh các trường có liên quan trong hai từ điển. Khi bạn có phiên bản này, bạn có thể sử dụng ví dụ NSArray#sortedArrayUsingFunction:context:
để sắp xếp mảng của mình.
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Tôi không thực sự muốn phá vỡ nó thành nhiều dòng. Nó đã đủ đơn giản cho tôi rồi.
Update, sortUsingDescriptors hiện sortedArrayUsingDescriptors
Vì vậy, giống như nó:
items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
Bạn có vẻ khó hiểu - '[NSArray sortArrayUsingDescriptors]' và - '[NSMutableArray sortUsingDescriptors]'. Mới nhất vẫn tồn tại và chưa được thay thế. – Dalzhim
Bạn có thể chỉ traverse từ cha mẹ đến tài sản con được yêu cầu. Ví dụ:
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES];
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
Nên nhớ gán cho mảng
1 Điều này đến nay là phương pháp đơn giản nhất –
Rất cám ơn, làm cho tinh thần và các công trình – iOSDevil
này là tốt, nhưng nó không bị rò rỉ. 1) bộ mô tả sắp xếp phải được phát hành hoặc tự động phát hành và 2) Không cần phải có cuộc gọi sao chép dòng có thể bị xóa. –