2010-03-06 43 views

Trả lời

191

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

+2

1 Điều này đến nay là phương pháp đơn giản nhất –

+0

Rất cám ơn, làm cho tinh thần và các công trình – iOSDevil

+11

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. –

0

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.

Xem NSArray Class Reference

25
[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.

+0

NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey: @ "name" tăng dần: YES]; [resultArray1 sortUsingDescriptors: [NSArray arrayWithObjects: descriptor, nil]]; – johndpope

+1

Câu trả lời hay hơn .... !! – TheTiger

4

Update, sortUsingDescriptors hiện sortedArrayUsingDescriptors

Vì vậy, giống như nó:

items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]]; 
+0

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

10

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]; 
+0

Bạn ít sao. điều này đã giúp tôi sắp xếp một từ điển phụ phụ. Cảm ơn rất nhiều! – Rambatino

+0

bạn có thể bỏ phiếu này sau đó không –

+0

Nó không trả lời câu hỏi! – Rambatino

0
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]]; 

Nên nhớ gán cho mảng

Các vấn đề liên quan