从Firebase检索数据期间,UITableView不更新

时间:2019-02-06 23:36:24

标签: ios swift firebase firebase-realtime-database

启动时,我将应用程序设置为从Firebase检索数据,创建对象并将它们添加到数组中,然后将它们添加到UITableView中。即使每个对象都是单独创建的,但项目都是创建的,但直到创建数据中的每个对象后,才将其添加到UITableView中。

Firebase在主线程上运行,因此这不是GCD问题。我在viewDidLoad中运行retrieveData()。

似乎这些项目已放入内存中(未添加到tableview中?)并继续堆积直到创建所有项目。届时,所有内容都将加载到表视图中,并且内存使用率恢复正常。如果有足够的项目,这将导致极高的内存使用率并导致崩溃。

s.recv()

1 个答案:

答案 0 :(得分:0)

首先尝试构造item对象并追加到数组,然后直接调用reloadData()。看看它是如何工作的。

    let value = snapshot.value as? NSDictionary
    if (value != nil){
        for (key) in value! {
            let item = key.value as? [String:Any]
            let (barcode, name, _, bottleSize) = self.getInfo(code: item!["code"]! as! String)
            let i = item(code: barcode, name: name, size: bottleSize, quantity: quantity)
            order.append(i)
        }
        orderTableView.reloadData()
    }