XCode

如何在 NSArray 中使用多個排序條件來排序?

相信如果你是 iOS 的程式設計師,一定都有使用過 NSArray 這個非常基本的元件,而大多數的程式設計師,在使用 NSArray 時,都會使用到排序的功能,而排序不外乎就是使用「sortedArrayUsingComparator」和「NSComparisonResult」的且合方式,但如果有多個條件要同時排序,這可就頭大了!幸好 iOS 提供了另一種陣列排序的方式,叫做「sortedArrayUsingDescriptors」,怎麼用呢?先別急,我們先看範例。

 

舉例來說,我們有一個物件,叫做「Person」,宣告如下:

@interface Person : NSObject
 
@property (strong, nonatomic) NSString* name;
@property (assign, nonatomic) int age;
@property (assign, nonatomic) int income;
 
@end

 

而接下來,我們分別宣告三個人,並把他們三個人加入陣列中,如下

Person *A = [[Person alloc] init];
A.name = @"孫無空";
A.age =  33;
A.income = 50;
 
Person *B = [[Person alloc] init];
B.name = @"唐三";
B.age =  43;
B.income = 55;
 
Person *C = [[Person alloc] init];
C.name = @"沙無淨";
C.age =  33;
C.income = 60;
 
NSMutableArray* unSortArray = [NSMutableArray arrayWithObjects:A,B,C, nil];

Read More