在迅速的两个参数数组排序 [英] Sort array on two parameters in swift

查看:145
本文介绍了在迅速的两个参数数组排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要排序的两个参数的阵列,例如,名称,然后通过描述。
首先排序数组的名字,然后按说明将无法工作,因为那么阵列将不按名称排序。

I want to sort an array on two parameters, for example, name and then by description. Sorting the array first by name and then by description won't work because then the array won't be sorted by name.

该解决方案应该是这样的:

The solution should be something like this:

var sortedArray = sorted(items, { (o1: MyObject, o2: MyObject) -> Bool in
            return o1.name < o2.name and o1.description < o2.description
        })

感谢

推荐答案

您语法是正确的。刚刚闭幕改为

Your syntax looks correct. Just change the closure to

return o1.name == o2.name ? (o1.description < o2.description) : (o1.name < o2.name)

如果你想,我建议使用老式的那种描述两个以上的排序条件。

If you want more than two sort criteria I recommend using the old fashioned sort descriptors.

let sortedArray = (unsortedArray as NSArray).sortedArrayUsingDescriptors([
  NSSortDescriptor(key: "name", ascending: true),
  NSSortDescriptor(key: "description", ascending: true),
  .... 
]) as! [Object]

这篇关于在迅速的两个参数数组排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆