iOS 数组排序NSSortDescriptor类的简单实用

前言

实际工作项目有这么一个需求:
一个UITableView列表需要同时展示两个不同接口的数据,并按照时间的顺序排序,起初自己还傻傻的写排序算法并展示,但非常浪费时间,后来才发现iOS官方的NSSortDescriptor即可以满足需求,非常好用。

1、NSSortDescriptor的介绍

你可以将它看做是对一个排序规则的描述者 因为我们可以使用它来对我们数组中的对象进行排序操作。

2、NSSortDescriptor的使用

假设现在有这样一个需求: 数组里面有十个Person对象 每一个Person对象有自己的名字、年龄和分数 我们需要对数组里面的这十个对象做排序操作 规则如下:

1.首先按照名字首字母排序;
2.如果首字母相同则按照年龄排序;

要实现这个需求 如果你之前 不知道NSSortDescriptor 这个对象 你可能会写很多的代码 现在借助这个对象我们会非常容易的实现上面的需求。

  • 因为一个描述者只能对一个属性进行描述 如果需要描述多个 我们需要创建多个描述者,根据我们的需求就需要创建两个描述者 一个是对名字描述 一个是对年龄描述 代码如下:
    NSSortDescriptor *nameDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];//YES 代表升序 NO代表降序
    NSSortDescriptor *ageDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];
  • 创建好这两个描述者之后 我们就可以调用数组的 sortedArrayUsingDescriptors 方法来实现排序,该方法里面放描述者 然后他会返回一个排序好的数组
    self.dataArray = [[self.dataArray sortedArrayUsingDescriptors:@[nameDescriptor,ageDescriptor]] mutableCopy];
  • 我们点击导航栏左边的排序按钮的时候 会执行排序操作。

源码链接 密码: eh23

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,107评论 19 139
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,498评论 11 349
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,301评论 18 399
  • 文/ 布衣 孙悟空为了帮助整个族群免受生死轮回,下定决心海外求仙,遍访名师。 有一天漂洋过海来到灵台方寸山,遇到一...
    布衣有话说阅读 2,900评论 0 0
  • 他,是一名退休高中物理人民教师;她,是一名退休小学数学人民教师。 原谅我真的记不确切在我年少时期他们的...
    二饼丹阅读 2,994评论 0 2

友情链接更多精彩内容