arrays - 快速对字典数组进行排序并且获取运算符不能应用于任何

标签 arrays swift sorting

我正在尝试根据 timeStamp 值从最新到最旧对 Dictionariesarray 进行排序

错误:二元运算符“<”不能应用于两个“Any?”操作数

timeStamp 值作为 Int 保存到 Dictionary 中:

timeStamp = inviteDict["timeStamp"] as? Int

字典:

[
"type": "invite",
"complimentId": key,
"status": status,
"timeStamp": timeStamp!,
 "fromUser": user
]

功能 - 组合两个 arrays 元组,在通过 handler 传递之前,我需要按 timeStamparray 进行排序>:

    func getInvitesAndCompliments(forUserId forId: String, handler: @escaping ([[String : Any]], Bool) -> ()){

            var invitesAndCompliments = [[String : Any]]()

            var invites = [[String : Any]]()

            var compliments = [[String : Any]]()

            getComplimentsReceived(forUserId: forId) { (complimentsDict, success) in
                invitesAndCompliments.removeAll()
                compliments = complimentsDict
                invitesAndCompliments = invites + compliments
                handler(invitesAndCompliments, true)
            }

            getInvitesReceived(forUserId: forId) { (invitesDict, success) in
                invitesAndCompliments.removeAll()
                invites = invitesDict
                invitesAndCompliments = compliments + invites

                //sort array by timeStamp value
                let sorted_invitesAndCompliments = invitesAndCompliments.sorted(by: { $0["timeStamp"] < $1["timeStamp"] })

                handler(sorted_invitesAndCompliments, true)
            }


        }//end func

最佳答案

按如下方式更新您的代码:

let sorted_invitesAndCompliments = invitesAndCompliments.sorted { ($0["timeStamp"] as! Int) < ($1["timeStamp"]  as! Int)}

我希望这对你有用。

关于arrays - 快速对字典数组进行排序并且获取运算符不能应用于任何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51374610/

相关文章:

c++ - 在没有小于谓词的情况下保持排序序列

arrays - 建议一个有效的算法

php - 从数组中分配变量

ios - IOS中Storyboard中如何添加GMSMapView

linux - 使用 Linux bash 脚本语言获取目录上的排序文件列表

ruby - 对包含字符串和整数的字符串进行排序,使字符串按字母顺序排列,所有整数按顺序排列

java - Spring Restful Array 对象作为输入

c - 在函数参数中使用指针或数组

ios - UICollectionView didSelectIotemAt issue

ios - 使用未执行的 firebase 创建新用户后继续 -Swift