NSArray排序
来源:互联网 发布:谁的行书比较好练 知乎 编辑:程序博客网 时间:2024/05/29 18:25
- (NSArray<ObjectType> *)sortedArrayUsingFunction:(NSInteger (*)(ObjectType, ObjectType,void * __nullable))comparator context:(nullablevoid *)context;
- (NSArray<ObjectType> *)sortedArrayUsingFunction:(NSInteger (*)(ObjectType, ObjectType,void * __nullable))comparator context:(nullablevoid *)context hint:(nullableNSData *)hint;
- (NSArray<ObjectType> *)sortedArrayUsingSelector:(SEL)comparator;
第一种 排序方法 利用sortedArrayUsingFunction 调用 对应方法customSort,这个方法中的obj1和obj2分别是指数组中的对象。
NSInteger customSort(id obj1, id obj2,void* context){if ([obj1 integerValue] > [obj2 integerValue]) { return (NSComparisonResult)NSOrderedDescending;}if ([obj1 integerValue] < [obj2 integerValue]) { return (NSComparisonResult)NSOrderedAscending;}return (NSComparisonResult)NSOrderedSame;}NSArray *sortArray = [[NSArray alloc] initWithObjects:@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"20",@"28",@"",nil];
//排序前
NSMutableString *outputBefore = [[NSMutableString alloc] init];
for(NSString *str in sortArray){
[outputBefore appendFormat:@",%@",str];
}
NSLog(@"排序前:%@",outputBefore);
NSArray *array = [sortArray sortedArrayUsingFunction:customSort context:nil];
NSMutableString *outputAfter = [[NSMutableString alloc] init];
for(NSString *str in array){
[outputAfter appendFormat:@",%@",str];
}
NSLog(@"排序后:%@",outputAfter);
//第二种,利用数组的sortedArrayUsingComparator调用 NSComparator ,obj1和obj2指的数组中的对象
NSComparator cmptr = ^(id obj1, id obj2){ if ([obj1 integerValue] > [obj2 integerValue]) { return (NSComparisonResult)NSOrderedDescending; } if ([obj1 integerValue] < [obj2 integerValue]) { return (NSComparisonResult)NSOrderedAscending; } return (NSComparisonResult)NSOrderedSame;};NSArray *sortArray = [[NSArray alloc] initWithObjects:@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"20",@"28",@"",nil];//排序前NSMutableString *outputBefore = [[NSMutableString alloc] init];for(NSString *str in sortArray){[outputBefore appendFormat:@"%@", str];}NSLog(@"排序前:%@",outputBefore);//排序后NSArray *array = [sortArray sortedArrayUsingComparator:cmptr];NSMutableString *outputAfter = [[NSMutableString alloc] init];for(NSString *str in array){[outputAfter appendFormat:@"%@", str];}NSLog(@"排序后:%@",outputAfter);
第三种 利用sortUsingDescriptors调用NSSortDescriptor
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"price" ascending:NO];//其中,price为数组中的对象的属性,这个针对数组中存放对象比较更简洁方便NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sortDescriptor count:1];[_totalInfoArray sortUsingDescriptors:sortDescriptors];
- NSArray 排序
- NSArray排序
- NSArray排序
- NSArray排序
- NSArray 排序
- NSArray 排序
- NSArray排序
- NSArray排序
- nsarray排序
- NSArray排序
- NSArray排序
- NSArray排序
- NSArray排序
- NSArray排序
- NSArray、NSMutableArray排序
- NSArray 的排序
- 数组排序-NSArray
- NSArray排序 --- sortedArrayUsingDescriptors
- 汇编程序:计算分段函数
- java poi对excel的处理
- 用python写的一个简易的云音乐播放器
- 搁置
- jdk打包class为 jar
- NSArray排序
- RabbitMQ 学习笔记(1)
- IPhone手机上不去Pinterest怎么办?
- 运行一个页面
- 前端的一些可爱的小插件之 wow.js & stellar.js
- UVA-1368-DNA Consensus String 基础题 贪心 模拟 详细注释
- python3 urllib读取网页写法
- qt之网络ftp(上)
- instagram注册不了怎么办_instagram怎么注册?