NSSortDescriptor排序

使用NSSortDescriptor进行排序

NSSortDescriptor可以实现按照对象的属性进行排序。比如我们有一个对象(People)。People有两个属性分别是名字(name)和年龄(age)。现在我们要按照People的年龄(age)来进行排序。

代码如下:

    //按年龄排序
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"_age" ascending:NO];
    NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
    [arrayPeople sortUsingDescriptors:sortDescriptors];

这样是按照年龄的降序进行排序。如果想升序的话将NO改为YES即可。如果是按照名字进行排序的话也很简单:

    //按姓名排序
    NSSortDescriptor *sortDescriptorName = [[NSSortDescriptor alloc] initWithKey:@"_name" ascending:NO];
    NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptorName, nil];
    [arrayPeople sortUsingDescriptors:sortDescriptors];

也许我们还有一种需求:先按照年龄排序,再按名字进行排序。代码如下:

    //按年龄和名字排序
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"_age" ascending:NO];
    NSSortDescriptor *sortDescriptorName = [[NSSortDescriptor alloc] initWithKey:@"_name" ascending:NO];
    NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, sortDescriptorName, nil];
    [_mutArrVideo sortUsingDescriptors:sortDescriptors];

这样相同年龄的情况下,就会按照名字进行排序。当然还可以设置两个以上的排序条件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值