OC 优先级排序方法

最近比较忙,忙着处理k线相关的各种需求,三个工程一起撸,好不酸爽~

排序,大家都用过,这里要介绍一个大多数人都不知道的方式,先买个关子——这种排序方式很牛。

它之所以牛,是因为它完美的且优雅的处理了包含潜在优先级条件的排序。
简单的几行代码就可以实现对数组按照条件优先级进行排序。
比起冒泡,比起block方便得不止一星半点。


栗子如下,一看便懂^o^

- (NSMutableArray *)sortArr:(NSMutableArray *)array
{
    //如你所想,key这个参数是支持keyPath的
    NSSortDescriptor    * sortByTime = [NSSortDescriptor sortDescriptorWithKey:@"position.openTime"
                                                                     ascending:YES];
    NSSortDescriptor    * sortById = [NSSortDescriptor sortDescriptorWithKey:@"position.id_p"
                                                                   ascending:YES];

    //这里的Descriptors参数是个数组,它之所以是数组,原因就在于这个数组的元素顺序,就是排序的优先级,元素下标越小则优先级越高
    //如下,即sortByTime作为排序的第一优先级,如果sortByTime不能区分元素的先后,则根据sortById来进行进一步的区分
    //最后得到按照你设定的条件及优先级排序后的数组
    return [[array sortedArrayUsingDescriptors:@[sortByTime,sortById]] mutableCopy];
}

拿好不谢~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值