我正在尝试根据 timeStamp
值从最新到最旧对 Dictionaries
的 array
进行排序
错误:二元运算符“<”不能应用于两个“Any?”操作数
timeStamp
值作为 Int
保存到 Dictionary
中:
timeStamp = inviteDict["timeStamp"] as? Int
字典:
[
"type": "invite",
"complimentId": key,
"status": status,
"timeStamp": timeStamp!,
"fromUser": user
]
功能 - 组合两个 arrays
元组,在通过 handler
传递之前,我需要按 timeStamp
对 array
进行排序>:
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/