我有一个聊天消息tableView,我想加载消息。
有任何想法让tableView重新加载消息快? 我尝试这个功能。
但我不知道如何做更好的方法。
谢谢。
如何使数组附加并在tableView中快速排序swift
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)
}
}
从哪里调用'loadMessages'?最好的地方是设置一个通知,在每个消息接收时调用'loadMessages'。如果你在前台,不需要像日期那样进行任何操作。 –
不要*猜测*哪些操作很慢。使用工具和*配置文件。* –
实际上,简单地分配(排序)数组的效果与*移除+附加*效果相同。 – vadian