gpt4 book ai didi

arrays - 多属性排序 Swift 数组

转载 作者:行者123 更新时间:2023-11-28 16:09:00 27 4
gpt4 key购买 nike

我想对数组中的对象进行排序

let person = Person()
person.isHome = true
person.firstname = "Foo"
person.surname = "Bar"

等...

我把所有的人都抓起来

guard let allPeople = controller.fetchedObjects as? Array<Person> else { return }

现在我要筛选和排序

var homeArray = allPeople
.filter { $0.isHome == true }
.sort { $0.surname < $1.surname }

一切都很好......除了,如果我想要像这样的额外“排序描述符”怎么办......

var homeArray = allPeople
.filter { $0.isHome == true }
.sort { $0.surname < $1.surname }
.sort { $0.firstname < $1.firstname }
.sort { $0.isOut == true && $1.isOut == false }

我仍然希望它们按姓氏排序,但我也希望它们按姓氏后名字排序,受伤高于未受伤……语法是什么?我似乎无法在任何地方找到它...我必须回去使用 NSArray 吗?

是不是就这么简单

.sort { ($0.isOut == true && $1.isOut == false) && ($0.firstname < $1.firstname) && ($0.surname < $1.surname)}

最佳答案

let new = [person,person1,person2,person3,person4]

var homeInArray = new
.filter { $0.isHome == true && $0.isInjured == true }
var homeNINArray = new
.filter { $0.isHome == true && $0.isInjured == false }


var newHomeArray = homeInArray.sort { $0.firstName < $1.firstName } + homeNINArray.sort { $0.firstName < $1.firstName }

试试这个解决方案......

关于arrays - 多属性排序 Swift 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39830406/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com