我正在尝试在Swift 4.2中对自定义结构数组进行排序。我想以这样的方式进行整理
isSelected
bool属性的对象始终位于顶部,应使用称为sortOrder
(Int)的属性通过升序对所有其他对象进行排序。 isSelected
属性的对象也应按sortOrder
排序(升序)。
到目前为止,我能够实现第一个目标,但第二个目标存在一些问题。 这是我的代码:
myArray.sort { (item1, item2) -> Bool in
if item1.isSelected ?? false && item2.isSelected == false {
return true
} else if item2.isSelected ?? false {
return false
}
return item1. sortOrder < item2. sortOrder
}
请帮助第二个目标。谢谢。
答案 0 :(得分:2)
要对数组进行排序:
myArray.sort { item1, item2 in
if item1.isSelected == item2.isSelected {
return item1.sortOrder < item2.sortOrder
}
return item1.isSelected && !item2.isSelected
}
获取新的排序数组
let sortedArray = myArray.sorted { item1, item2 in
if item1.isSelected == item2.isSelected {
return item1.sortOrder < item2.sortOrder
}
return item1.isSelected && !item2.isSelected
}