Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays swift中基于两个参数的排序数组_Arrays_Sorting_Swift_Parameters - Fatal编程技术网

Arrays swift中基于两个参数的排序数组

Arrays swift中基于两个参数的排序数组,arrays,sorting,swift,parameters,Arrays,Sorting,Swift,Parameters,我想根据两个参数对数组进行排序,例如,name,然后是description。 先按名称再按描述对数组进行排序是行不通的,因为这样就不会按名称对数组进行排序 解决方案应该是这样的: var sortedArray = sorted(items, { (o1: MyObject, o2: MyObject) -> Bool in return o1.name < o2.name and o1.description < o2.description

我想根据两个参数对数组进行排序,例如,name,然后是description。 先按名称再按描述对数组进行排序是行不通的,因为这样就不会按名称对数组进行排序

解决方案应该是这样的:

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

谢谢

您的语法看起来正确。只需将关闭更改为

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

因此,它首先根据名称进行排序,然后根据描述进行排序。否则它会同时对两个键进行排序,不会重复。它应该按
名称
(第3部分)排序,当名称相等(第1部分)时,只能按
说明
(第2部分)排序。您能告诉我在列表中使用第三个排序过滤器的方法吗?我只能让它工作两天也许你应该问一个新的SOF问题。
let sortedArray = (unsortedArray as NSArray).sortedArrayUsingDescriptors([
  NSSortDescriptor(key: "name", ascending: true),
  NSSortDescriptor(key: "description", ascending: true),
  .... 
]) as! [Object]