Ich habe eine Chat-Nachricht TableView, und ich möchte die Nachrichten laden.
Haben Sie eine Idee, TableView Nachrichten schnell neu laden zu lassen? Ich versuche diese Funktion.
Aber ich weiß nicht, wie man den besseren Weg geht.
Danke.
Wie man Array schnell anhängen und sortieren in 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)
}
}
Woher rufen Sie 'loadMessages'? Der beste Ort ist eine Benachrichtigung zum Aufruf von 'loadMessages' bei jeder empfangenen Nachricht. Wenn Sie sich im Vordergrund befinden, müssen Sie keine Operation wie das Datum ausführen. –
Raten Sie nicht *, welche Operationen langsam sind. Verwenden Sie Instruments und * profile. * –
Das einfache Zuordnen des (sortierten) Arrays hat die gleiche Wirkung wie das * Entfernen + Anhängen *. – vadian