NSSortDescriptor使用注意以及直接排序字符串数组
2016-02-14 16:17
483 查看
NSSortDescriptor 指定用于对象数组排序的对象的属性。
如果是Employee对象需要按照name来排序,就生成下面的descriptor
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:name ascending:YES];
如果需要多个排序,比如先按name排序,再按入职日期排序。那就创建两个descriptor
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:hireDate ascending:YES];
两个descriptor放到数组里一起传给需要排序的数组。
如果对象就是NSString,就是字符串数组排序,那更简单了,sortdescriptor的key直接指定为nil,就直接排序对象,而不是对象的某一个属性了。
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
NSArray *descriptors = [NSArray arrayWithObject:descriptor];
NSArray *myDataArray = [NSArray arrayWithObjects:@"what", @"xero", @"highligth",@"mountain", @"Victory", @"Balance", nil];
NSArray *resultArray = [myDataArray sortedArrayUsingDescriptors:descriptors];
NSLog(@"%@", resultArray);
NSArray 使用sortedArrayUsingDescriptors,返回排序好的数组。
NSMutableArray可以直接使用sortUsingDescriptors,对数组本身排序。
如果是Employee对象需要按照name来排序,就生成下面的descriptor
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:name ascending:YES];
如果需要多个排序,比如先按name排序,再按入职日期排序。那就创建两个descriptor
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:hireDate ascending:YES];
两个descriptor放到数组里一起传给需要排序的数组。
如果对象就是NSString,就是字符串数组排序,那更简单了,sortdescriptor的key直接指定为nil,就直接排序对象,而不是对象的某一个属性了。
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
NSArray *descriptors = [NSArray arrayWithObject:descriptor];
NSArray *myDataArray = [NSArray arrayWithObjects:@"what", @"xero", @"highligth",@"mountain", @"Victory", @"Balance", nil];
NSArray *resultArray = [myDataArray sortedArrayUsingDescriptors:descriptors];
NSLog(@"%@", resultArray);
NSArray 使用sortedArrayUsingDescriptors,返回排序好的数组。
NSMutableArray可以直接使用sortUsingDescriptors,对数组本身排序。
相关文章推荐
- linux实战(四)----写入文件----实例解析
- linux实战(四)----写入文件----实例解析
- 小故事:架构师需要做什么?
- 网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用户名问题
- 1045. Favorite Color Stripe (30)
- DevExpress源码编译报错解决办法
- 解决NSObject子类中弹出UIAlertViewController问题
- 如何实现EDIUS中的素材的替换
- ubuntu发行版本
- 2016年ios开发者账号申请
- Win10系统应用图标呈灰色无法打开/闪退如何解决?
- spring3 和ehcache 整合
- PNG格式
- RTTI(RunTime Type Identification,运行时类型识别)
- Backbone.js框架中简单的View视图编写学习笔记
- String to Integer (atoi)
- Fiddler的使用
- LeetCode 100. Same Tree
- 编程那点事
- RecyclerView ---LayoutManager