在Swift中对一组字典进行排序

Hri*_*sto 16 ios swift

假设我们有

var filesAndProperties:Dictionary<String, Any>[]=[] //we fill the array later
Run Code Online (Sandbox Code Playgroud)

当我尝试使用排序数组

filesAndProperties.sort({$0["lastModified"] > $1["lastModified"]})
Run Code Online (Sandbox Code Playgroud)

Xcode说"找不到成员下标".

如何按特定键中的值对这些词典数组进行排序?

Mar*_*n R 42

错误消息具有误导性.真正的问题是Swift编译器不知道对象$0["lastModified"]是什么类型以及如何比较它们.

例如,你必须更明确一点

filesAndProperties.sort {
    item1, item2 in
    let date1 = item1["lastModified"] as Double
    let date2 = item2["lastModified"] as Double
    return date1 > date2
}
Run Code Online (Sandbox Code Playgroud)

如果时间戳是浮点数,或者

filesAndProperties.sort {
    item1, item2 in
    let date1 = item1["lastModified"] as NSDate
    let date2 = item2["lastModified"] as NSDate
    return date1.compare(date2) == NSComparisonResult.OrderedDescending
}
Run Code Online (Sandbox Code Playgroud)

如果时间戳是NSDate对象.