我有一個聊天消息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