您的位置:首页 > 其它

数组排序

2016-04-18 17:38 357 查看
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(同序)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: