我正在尝试对类型为“ ObjCClass”的数组进行快速排序,这是一个目标c类。 'ObjCClass'具有属性'name',它是String类型的可选属性。我想基于'name'属性以升序对数组中的对象进行排序。如何在不进行力解包的情况下做到这一点?
我尝试使用此:
var sortedArray = unsortedArray.sorted(by: { $0.name as String! < $1.name as String!})
我一直在尝试使用guard和if / let语句来检查属性“ name”是否存在,但是由于我认为自己做得不正确,所以我一直遇到错误。如何检查数组中每个对象的属性是否存在,然后进行排序?
答案 0 :(得分:1)
首先过滤掉不需要的条目,然后将name
与强制展开进行比较
var sortedArray = unsortedArray
.filter { $0.name != nil }
.sorted { $0.name! < $1.name! }
注意:
filter
删除了nil
个案例,而到我们来到sorted
时,name
已经出席