gpt4 book ai didi

ios - 如何在 tableView swift 中快速进行数组追加和排序

转载 作者:行者123 更新时间:2023-11-30 12:13:27 25 4
gpt4 key购买 nike

我有一个聊天消息tableView,我想加载消息。
有什么想法让 tableView 快速重新加载消息吗?我尝试了这个功能。
但我不知道如何做得更好。
谢谢。

var contents:[ChatroomMessage] = [ChatroomMessage]()

func loadMessages() {

//I think remove and append are very cost time
self.contents.removeAll(keepingCapacity: false)
self.chatroom.messages.forEach({ (id,message) in
self.contents.append(message)
})

if contents.count == 0 {
return
}

self.contents.sort(by: { (a,b) in
a.datetime < b.datetime
})

self.tableView.reloadData()
if self.contents.count > 0 {
self.tableView.scrollToRow(at: IndexPath.init(row: self.contents.count-1,section: 0), at: .bottom, animated: false)
}

}

最佳答案

在任何聊天中都很少使用reloadData(),因为聊天 View 中可能有大量消息。

相反,您应该重新加载(重新布局)特定项目(或单元格)。因为你应该创造不同的状态。您可以使用任何库进行差异(例如 – https://github.com/wokalski/Diff.swift )

另外,你可以使用nMessenger(https://github.com/eBay/NMessenger),它是完美的。基于 Pinterest 的 AsyncDisplayKit(又名纹理)的 Messenger View 。

关于ios - 如何在 tableView swift 中快速进行数组追加和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45730061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com