假设我们有
var filesAndProperties:Dictionary<String, Any>[]=[] //we fill the array later
当我尝试使用
对数组进行排序时filesAndProperties.sort({$0["lastModified"] > $1["lastModified"]})
Xcode 提示“找不到成员下标”。
如何按特定键中的值对此类字典数组进行排序?
最佳答案
错误信息具有误导性。真正的问题是 Swift 编译器确实
不知道 $0["lastModified"]
是什么类型的对象以及如何比较它们。
所以你必须更明确一点,例如
filesAndProperties.sort {
item1, item2 in
let date1 = item1["lastModified"] as Double
let date2 = item2["lastModified"] as Double
return date1 > date2
}
如果时间戳是 float ,或者
filesAndProperties.sort {
item1, item2 in
let date1 = item1["lastModified"] as NSDate
let date2 = item2["lastModified"] as NSDate
return date1.compare(date2) == NSComparisonResult.OrderedDescending
}
如果时间戳是 NSDate
对象。
关于ios - 在 Swift 中对字典数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24593867/