ios - 在 Swift 中对字典数组进行排序

标签 ios swift

假设我们有

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/

相关文章:

objective-c - iOS 缩略图顶部的复选标记

ios - 在 iOS 上使用 MDCBottomNavigationBar 切换 View Controller

ios - 模拟器会杀死不像物理设备那样结束后台任务的应用程序吗?

ios - SwiftUI 通用拉动刷新 View

ios - aws dynamodb 如何在 ios swift 中使用对象映射器和批处理获取

ios - react native : Removing the bottom border from NavigatorIOS

ios - 如何在 swift 5 中消除弹跳?

ios - 注册类语法 - Swift

ios - 有没有办法在点击时存储 pdf 注释?

ios - 根据表格 View 单元格的类型更改行高