我想将时间戳最大的数组排序为时间戳最小的数组。首先,我想从Firebase提取所有数据,并将其添加到数组中,当获取所有数据时,我想对数组进行排序。当我尝试执行此操作时,将在第posts.sort(by: {$0.timestamp > $1.timestamp})
行出现此错误:
二元运算符'>'不能应用于两个'Int?'操作数
这是我的代码:
var posts: [Post] = []
Api.MyPosts.fetchMyPosts(userId: self.userId) { (key) in
Api.Post.observePost(withId: key, completion: {
post in
self.posts.insert(post, at: 0)
self.tableView.reloadData()
})
posts.sort(by: {$0.timestamp > $1.timestamp})
}
有人知道我如何解决此错误并将时间戳记保持为整数吗?
答案 0 :(得分:0)
您需要unwrap
timestamp
,因为它是一个optional Int
值,即
posts.sort {
guard let t1 = $0, let t2 = $1 else {
return false
}
return t1 > t2
}