1.子母排序

NSArray *kArrSort = [_dic allKeys]; //这里是字母数组:,g,a,b.y,m……

NSArray *resultkArrSort = [kArrSort sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

return [obj1 compare:obj2   options:NSNumericSearch];

}];

NSLog(@"%@",resultkArrSort);

2.数值排序

// sortedArrayUsingComparator:方法并不会改变array数组内部的顺序

NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *obj1, NSNumber *obj2) {

if ([obj1 intValue] < [obj2 intValue]) {

return NSOrderedDescending;

} else {

return NSOrderedAscending;

} }];

NSLog(@"%@", sortedArray);

3.使用NSDescriptor进行排序

我们将要排序的对象是一个Persion类,如下定义:

  1. @interface Person : NSObject
  2. @property (nonatomic, copy) NSString *name;
  3. @property (nonatomic, copy) NSString *surname;
  4. @property (nonatomic, strong) NSDate *dateOfBirth;
  5. @end

而数组中包含如下内容:

  1. Smith John 03/01/1984
  2. Andersen Jane 16/03/1979
  3. Clark Anne 13/09/1995
  4. Smith David 19/07/1981
  5. Johnson Rose 22/02/1989
  1. NSSortDescriptor *firstDescriptor = [[NSSortDescriptor alloc] initWithKey:@"surname" ascending:YES];
  2. NSSortDescriptor *secondDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
  3. NSArray *sortDescriptors = [NSArray arrayWithObjects:firstDescriptor, secondDescriptor, nil];
  4. NSArray *sortedArray = [self.persons sortedArrayUsingDescriptors:sortDescriptors];

上面代码的排序结果如下所示:

  1. Andersen Jane
  2. Clark Anne
  3. Johnson Rose
  4. Smith David
  5. Smith John

最新文章

  1. Java,extends,继承
  2. 【jQuery小实例】js 插件 查看图片
  3. Oracle trunc()函数的用法
  4. 【平面设计AFTER】读到的设计海报分层法
  5. PBOC协议中对于所有电子存折/电子钱包应用的预处理
  6. 蓝牙物理链路类型:SCO和ACL链路
  7. python 学习笔记十二 html基础(进阶篇)
  8. 正则基础之 \b 单词边界
  9. Android -- 初探MVP模式
  10. IE8的Textarea滚动条乱跳的解决方案
  11. bzoj 1964: hull 三维凸包 计算几何
  12. 【JavaScript运算符与表达式】
  13. Redis学习——数据结构介绍(四)
  14. .Net Core 使用 System.Drawing.Common 部署到CentOS上遇到的问题
  15. LeetCode(105):从前序与中序遍历序列构造二叉树
  16. idea显示左边的树形项目结构
  17. SQL SERVER 事务的使用(tran)
  18. Python函数——装饰器
  19. python数据分析Adult-Salary预测
  20. (转)java并发编程--Executor框架

热门文章

  1. [LINK]List of .NET Dependency Injection Containers (IOC)
  2. Replication--将LSN转换成16进制
  3. 苹果软件App上架问题
  4. IE6 IE7 IE8 FF兼容符号
  5. [ActionScript 3.0] 判断XML属性是否存在
  6. iOS 图片的存储以及读取和删除
  7. 参照跟老男孩学linux运维搭建nagios实验小结
  8. 百度地图API —— 制作多途经点的线路导航
  9. ubuntu15.04下安装jdk8
  10. 条目二十八《正确理解由reverse_iterator的base()成员函数所产生的iterator的用法》