gpt4 book ai didi

swift - 根据最新的时间戳加载 tableView

转载 作者:行者123 更新时间:2023-11-28 06:19:52 27 4
gpt4 key购买 nike

我想根据 Firebase 中的时间戳子值对 tableView 进行排序。我希望每次加载(或重新加载)tableView 时,将最新的 tableViewCell 添加到 tableView 以放置在 tableview 的顶部。提前感谢您的帮助!

//来自 firebase 的 JSON

{
"users" : {
"CmtuebwVrmOG3n4uSsIK1b4FsSN2" : {
"Places" : {
"-KhDwZJvca9HedFluJ5O" : {
"addedBy" : "CmtuebwVrmOG3n4uSsIK1b4FsSN2",
"place" : "Edinburgh, UK",
"timestamp" : 1.491678152020824E9
},
"-KhE7raDrM2RRs-N6FXg" : {
"addedBy" : "CmtuebwVrmOG3n4uSsIK1b4FsSN2",
"place" : "Hong Kong",
"timestamp" : 1.49168137667081E9
},
"-KhFUaEjjhE3RBOw95fc" : {
"addedBy" : "CmtuebwVrmOG3n4uSsIK1b4FsSN2",
"place" : "Illinois, USA",
"timestamp" : 1.491704112134812E9
},
"-KhzSIHrFHiUEBrzBKUH" : {
"addedBy" : "CmtuebwVrmOG3n4uSsIK1b4FsSN2",
"place" : "Ghana",
"timestamp" : 1.492492039376661E9
}
},

//加载位置 TableView 的函数

    var placeList = [Place]()
var placesDictionary = [String: Place]()

func fetchPlaces() {

let uid = FIRAuth.auth()?.currentUser?.uid

let ref = FIRDatabase.database().reference().child("users").child(uid!).child("Places")
ref.observe(.childAdded, with: { (snapshot) in

if let dictionary = snapshot.value as? [String: AnyObject] {

let place = Place()
place.setValuesForKeys(dictionary)
// self.placeList.append(place)

if let addedBy = place.addedBy {
self.placesDictionary[addedBy] = place
self.placeList.append(place)

self.tableView.beginUpdates()
self.tableView.insertRows(at: [IndexPath(row: self.placeList.count-1, section: 0)], with: .automatic)
self.tableView.endUpdates()

}

//this will crash because of background thread, so lets call this on dispatch_async main thread
DispatchQueue.main.async(execute: {
self.tableView.reloadData()
})
}

}, withCancel: nil)

}

最佳答案

如果您只想将最新的数据记录插入到数组的第一个索引中。你为什么不做这样的事情:

self.placeList.insert(place, at: 0)

而不是

self.placeList.append(place)

顺便说一句,我认为以下内容不是必需的:

self.tableView.beginUpdates()
self.tableView.insertRows(at: [IndexPath(row: self.placeList.count-1, section: 0)], with: .automatic)
self.tableView.endUpdates()

关于swift - 根据最新的时间戳加载 tableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43959247/

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