美文网首页
iOS 数组排序NSSortDescriptor类的简单实用

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

作者: 不走寻常way | 来源:发表于2017-09-02 17:46 被阅读0次

    前言

    实际工作项目有这么一个需求:
    一个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

    相关文章

      网友评论

          本文标题:iOS 数组排序NSSortDescriptor类的简单实用

          本文链接:https://www.haomeiwen.com/subject/tboljxtx.html