NSMutableArray *feedsBuffer;
//初始化buffer以及填充数据
//…….
//排序只需要两句话:已针对数组内对象的publishTime属性(NSDate)排序为例:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"publishTime" ascending:NO];
[feedsBuffer sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
假如feedsBuffer是NSArray,那么有一个方法是
NSArray *sortedArray = [feedsBuffer sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
如果排序的依据比较复杂,那么可以使用Block进行大小判断自定义:
[feedsBuffer sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
//返回三者其一:NSOrderedAscending, NSOrderedSame, NSOrderedDescending
return NSOrderedSame;
}];
NSArray *originalArray = @[@”1”,@”21”,@”12”,@”11”,@”0”];
//block比较方法,数组中可以是NSInteger,NSString(需要转换)
NSComparator finderSort = ^(id string1,id string2){
if ([string1 integerValue] > [string2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}else if ([string1 integerValue] < [string2 integerValue]){
return (NSComparisonResult)NSOrderedAscending;
}
else
return (NSComparisonResult)NSOrderedSame;
};
//数组排序:
NSArray *resultArray = [originalArray sortedArrayUsingComparator:finderSort];
日期排序
NSComparisonResult result = [dateA compare:dateB];
NSOrderedAscending(升序)
NSOrderedDescending(降序)
NSOrderedSame(同序)