IOS中,对象数组排序比较复杂,笔者根据自己的经历,分享一种常见的排序方法:
假设一个对象file(文件),有type(种类),size(大小)等多个属性。
按单个属性(比如:文件大小)排序:
NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:@"size" ascending:YES];
[self.array sortUsingDescriptors:[NSArray arrayWithObject:sorter]];
此时的数组(array)就是完成排序的数组。
那如果按多个属性排序呢?(加入说总体上按文件种类排序,每类文件中再按文件大小排序)
NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:@"type" ascending:YES];
NSSortDescriptor *subSorter = [[NSSortDescriptor alloc] initWithKey:@"size" ascending:YES];
[self.array sortUsingDescriptors: [NSArray arrayWithObjects:sorter,subSorter,nil]];