在Swift 3中,我将我的数组定义为:
var filteredObjects = [Int: CustomObject]()
然后我用数据填充数组:
filteredObjects[filteredObjects.count] = CustomObject
现在我想按(1)属性" title"排序数组。 CustomObject
的{{1}}和(2)浮动属性"距离" String
。
当我尝试:
CustomObject
它产生错误元组类型的值(键:Int,值:CustomObject)没有成员距离
我怀疑我不能使用这样的filteredObjects.sort({ $0.distance < $1.distance })
方法,但我找不到解决方案。
答案 0 :(得分:1)
在swift 3中: 在filteredObjects中使用sort,即字典$ 0将为您提供一个来自filteredObjects的单个对象,它将是元组类型“((key:Int,value:CustomObject),(key:Int,value:CustomObject))”。 $ 0.distance实际上会尝试在结果元组中找不到元组中的距离属性,因此您会收到错误元组类型的值(键:Int,值:CustomObject)没有成员距离强>
你能做的是
let resultDictionary = filteredObjects.sorted() {
$0.0.value.distance < $0.1.value.distance
}
$ 0.0.value的类型为CustomObject,它具有您想要对结果进行排序的属性距离。
特别感谢@Leo Dabus。