swift 加载表格内容后对其进行排序

ajsxfq5m  于 2022-12-10  发布在  Swift
关注(0)|答案(1)|浏览(93)

bounty明天到期。回答此问题可获得+200声望奖励。submariner正在寻找标准答案:我只需要完成的代码。希望有人能帮助我。我试图解决这个几个星期以来。

在我的应用程序中,用户可以关注不同的群组。我的代码首先检查用户关注了哪些群组,并将其放入一个数组中。之后,代码打开每个群组ID,并使用newPost = importPosts加载其中的每个帖子。之后,帖子被插入到表中。同时,它还异步加载用户的图片。每个帖子都有一个时间戳。但帖子没有时间戳。在时间戳之后,我不能进行排序。我怎么能这样做呢?现在它完全是随机的。
我试过了。“userTime”),但这并不起作用。它在合并不同组的帖子之前对它们进行了排序。因此在合并它们之后,它们再次没有排序。合并是个问题。
我也尝试了table.sort { $0.newPost.userTime〈$1.newPost.userTime },但它说上下文闭包类型'(DataSnapshot,String?)-〉Void'需要2个参数,但闭包体中使用了1个。
第一个
数据库:x1c 0d1x

vlf7wbxs

vlf7wbxs1#

如果没有更多的上下文和数据库结构的视图,提供代码来解决问题会有点困难。
我的理解是您正在从每个组中的用户单独获取帖子。这是正确的吗?要从数据库中获取一个排序数组,您可能需要获取所有post.groupId is in groupIds的帖子,其中groupIds是您所需的groupId数组。
如果你坚持使用fetch + append to existing array的方法,那么最简单的方法就是在每次追加新帖子时对结果数组进行排序。

self.fetchUser(uid: userUid, completed: {
                    self.table.insert(newPost, at: 0)
                    print(newPost.userTime)
                    self.table = self.table.sorted(by: { $0.userTime > $1.userTime }) 
                    self.tableView.reloadData()
                })

相关问题