ios数组排序
来源:互联网 发布:矩阵的奇异值定义 编辑:程序博客网 时间:2024/05/20 08:44
在利用tableview显示列表数据时,经常会要将数据源排序,往往我们的数据源都是一个数组,那么我们只需要将数据排序就好了,NSArray提供了很多种方法,按照所利用的排序参数,可以简单分为descriptor,selector,function,和block排序。
NSArray *sortArray = [[NSArray alloc] initWithObjects:@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"20",@"28",@"",nil];
运用 block排序:
for(NSString *strin sortArray){
NSLog(@"排序前:%@",str);
}
NSComparator cmptr = ^(id obj1,id obj2){
if ([obj1 integerValue] > [obj2integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
// return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
// return (NSComparisonResult)NSOrderedAscending;
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
};
NSArray *array = [sortArray sortedArrayUsingComparator:cmptr];
for(NSString *strin array){
NSLog(@"排序后:%@",str);
}
NSInteger customSort (id obj1,id obj2, void* context)
{
if ([obj1 integerValue] > [obj2integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 integerValue] < [obj2integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}
NSArray *array = [sortArraysortedArrayUsingFunction:customSort context:nil];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptoralloc]initWithKey:@"CategoryName"ascending:YES];//传YES为升序,传no为降序。。 NSArray *sortDescriptors = [[NSArrayalloc]initWithObjects:&sortDescriptorcount:1];
[_dateArray sortUsingDescriptors:sortDescriptors];
[value compare:(NSString *)];
[value compare:(NSString *) options:(NSStringCompareOptions)];
[value compare:(NSString *) options:(NSStringCompareOptions) range:(NSRange)];
options:(NSStringCompareOptions)
传入 NSStringCompareOptions 枚举的值
enum{
//以下定义高于 mac os 10.5 或者高于 iphone 2.0 可用
//以下定义高于 iphone 3.2 可用
}
range:(NSRange)
比较字符串的范围
location: 需要比较的字串起始位置(以0为起始)
length: 需要比较的字串长度
返回值:
typedef enum _NSComparisonResult {
} NSComparisonResult;
_dateArray = [NSMutableArrayarrayWithArray:[_dateArraysortedArrayUsingComparator:
^NSComparisonResult(collectCategory *obj1,collectCategory *obj2) {
NSComparisonResult result = [obj1.CategoryNamecompare:obj2.CategoryName options:NSCaseInsensitiveSearchrange:NSMakeRange(0,3)];
switch(result)
{
case NSOrderedAscending:
return NSOrderedAscending;
case NSOrderedDescending:
return NSOrderedDescending;
case NSOrderedSame:
return NSOrderedSame;
default:
return NSOrderedSame;
}
}] ];
- ios 数组排序-高级排序
- iOS 中数组排序
- iOS 数组排序
- iOS:字典数组排序
- iOS数组排序方法
- ios中文数组排序
- iOS数组快速排序
- iOS数组排序
- ios数组排序
- IOS数组排序
- ios数组排序
- iOS数组排序
- iOS 数组排序
- IOS数组排序
- iOS 数组/对象排序
- iOS 数组排序
- iOS对象数组排序
- iOS数组排序
- SpringMvc 深入讲解 三(springMvc整合spring)
- Floyd算法
- Spring框架的七大模块
- 联合查询SQL语句和翻页语句
- 数字三角形问题
- ios数组排序
- Java NIO原理解析
- VB.Net中日期类型的简单使用
- 特殊需求的sql
- 掌握elasticsearch 搜索引擎开发的一般阶段
- Git 常用命令 更新与提交
- 检测edittext中文字的输入状态,清空内容
- 生成验证码
- Redhat 6.4安装ORACLE11R2 ,运行root.sh报错:“libcap.so.1:cannot open shared object file”