如果陣列裡面的每乙個元素都是乙個個model,例如
departsdate.h檔案
#import @inte***ce departsdate : nsobject
@property (nonatomic, retain) nsdate *date;
@property (nonatomic, assign) int price;
@end
departsdate.m檔案
#import "departsdate.h"
@implementation departsdate
@synthesize date, price;
- (void)dealloc
@end
那麼對這個陣列排序就可以這樣
nsmutablearray *array = [nsmutablearray array];
......
nssortdescriptor *sort = [nssortdescriptor sortdescriptorwithkey:@"date" ascending:yes];[array sortusingdescriptors:[nsarray arraywithobject:sort]];
這是按照時間公升序排列。如果需要降序,那麼將yes改為no。
使用nssortdescriptor可以很方便的進行多條件排序,例如:同樣是上面的假設,首先按照**公升序排列;當**相同時,按照日期降序排列。
nsmutablearray *array = [nsmutablearray array];
......
nssortdescriptor *sort1 = [nssortdescriptor sortdescriptorwithkey:@"price" ascending:yes];
nssortdescriptor *sort2 = [nssortdescriptor sortdescriptorwithkey:@"date" ascending:no];
[array sortusingdescriptors:[nsarray arraywithobjects:sort1, sort2, nil]];
nssortdescriptor僅對nsset,nsarray,nsmutablearray可以排序,需要注意的是
nsset
- (nsarray *)sortedarrayusingdescriptors:(nsarray *)sortdescriptors;
這是對nsset排序,返回乙個nsarray。
nsarray
- (nsarray *)sortedarrayusingdescriptors:(nsarray *)sortdescriptors;
這是對nsarray排序,返回乙個新的nsarray,注意記憶體洩漏。
nsmutablearray
- (void)sortusingdescriptors:(nsarray *)sortdescriptors;
這是nsmutablearray排序,沒有返回值。
NSSortDescriptor 陣列排序
如果陣列裡面的每乙個元素都是乙個個model,例如 departsdate.h檔案 plain view plain copy import inte ce departsdate nsobject property nonatomic,retain nsdate date property non...
NSSortDescriptor 陣列排序
如果陣列裡面的每乙個元素都是乙個個model,例如 departsdate.h檔案 plain view plain copy import inte ce departsdate nsobject property nonatomic,retain nsdate date property non...
NSSortDescriptor 陣列排序
如果陣列裡面的每乙個元素都是乙個個model,例如 departsdate.h檔案 plain view plain copy import inte ce departsdate nsobject property nonatomic,retain nsdate date property non...