2011-01-18 50 views

Trả lời

88

Bạn có thể làm điều này để sắp xếp NSMutableArray:

[yourArray sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 
+0

[tempPeoples sortUsingSelector: @selector (localizedCaseInsensitiveCompare :)]; tôi đã sử dụng mã này nó cho ngoại lệ – Ali

+0

bạn có thể plz đăng các statment ngoại lệ. –

+0

NAddressBook [5197: 207] *** - [AddressData localizedCaseInsensitiveCompare:]: bộ chọn không được nhận dạng được gửi tới ví dụ 0x149160 2011-01-18 17: 01: 14.470 NAddressBook [5197: 207] *** Chấm dứt ứng dụng do không có ngoại lệ ' NSInvalidArgumentException ', lý do:' *** - [AddressData localizedCaseInsensitiveCompare:]: bộ chọn không được nhận dạng được gửi tới instance 0x149160 ' 2011-01-18 17: 01: 14.484 NAddressBook [5197: 207] Stack: ( – Ali

0

Sử dụng lớp NSSortDescriptor và nghỉ ngơi bạn sẽ nhận được tất cả mọi thứ here

46

Những câu trả lời khác được cung cấp ở đây đề cập đến sử dụng @selector (localizedCaseInsensitiveCompare :)
Điều này làm việc tuyệt vời cho một mảng của NSString, tuy nhiên OP nhận xét rằng mảng chứa các đối tượng và phân loại đó phải được thực hiện theo thuộc tính object.name.
Trong trường hợp này bạn nên làm điều này:

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]; 
[yourArray sortUsingDescriptors:[NSArray arrayWithObject:sort]]; 

đối tượng của bạn sẽ được sắp xếp theo tên tài sản của các đối tượng.

+0

Chính xác những gì tôi cần! Cảm ơn! – RanLearns

+1

Đây là câu trả lời hay hơn cho câu hỏi cụ thể này. Hoạt động tuyệt vời! –

+0

những gì tôi muốn. +1 – pkc456

1
NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; // Describe the Key value using which you want to sort. 
NSArray * descriptors = [NSArray arrayWithObject:valueDescriptor]; // Add the value of the descriptor to array. 
sortedArrayWithName = [yourDataArray sortedArrayUsingDescriptors:descriptors]; // Now Sort the Array using descriptor. 

Tại đây bạn sẽ nhận được danh sách mảng được sắp xếp.

0
NSSortDescriptor * sortDescriptor; 
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Name_your_key_value" ascending:YES]; 
NSArray * sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 
NSArray * sortedArray; 
sortedArray = [Your_array sortedArrayUsingDescriptors:sortDescriptors]; 
0

Có lẽ điều này có thể giúp bạn:

[myNSMutableArray sortUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"firstName" ascending:YES],[NSSortDescriptor sortDescriptorWithKey:@"lastName" ascending:YES]]]; 

Tất cả được theo công NSSortDescriptor ...

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