【问题标题】:Table View not reloading data from database表视图不从数据库重新加载数据
【发布时间】:2019-11-15 12:29:02
【问题描述】:

我正在尝试在视图加载和视图出现时重新加载我的表格视图。我正在从数据库中提取数据,所以我认为我的问题与速度有关。这个函数在我的视图中调用确实加载并且视图确实出现了,我尝试在各个地方调用tableView.reloadData(),但它不会在加载视图时加载带有值的表视图。但是,当点击博客按钮时,表格视图会填充。

func articleRefresh(){

        DataService.instance.getAllArticles { (returnedArticlesArray) in
            self.blogArray.removeAll()
            self.newsArray.removeAll()
            self.rosterArray.removeAll()
            self.draftArray.removeAll()
            self.articleArray.removeAll()
            for article in returnedArticlesArray {

                if article.category == "blog" {

                    self.blogArray.append(article)
                }
                else if article.category == "news" {
                    self.newsArray.append(article)
                }
                else if article.category == "roster" {
                    self.rosterArray.append(article)
                }
                else if article.category == "draft" {
                    self.draftArray.append(article)
                } else {
                    self.blogArray.append(article)
                }
            }
            self.newsArray.reverse()
            self.rosterArray.reverse()
            self.draftArray.reverse()

        }

    }

@IBAction func BlogPressed(_ sender: Any) {
        articleArray.removeAll()

        self.articleArray = self.blogArray
        tableView.reloadData()
    }

【问题讨论】:

  • 这段代码令人眼花缭乱。使用 one 数组作为数据源并将returnedArticlesArray 分配给它。它会解决你的问题
  • 然后在viewDidLoad中分离数组?
  • 不,忘记数组。声明一个类型为article 的数组并从那里获取所有信息。或者,通过category 将数组分组到字典中。
  • 这绝对是一种更聪明的方法,但这仍然不能解决我的问题,问题是下载速度不够快

标签: ios swift firebase-realtime-database tableview


【解决方案1】:

您应该在数据源更新后在回调中调用tableView.reloadData()。我猜你的情况应该放在self.draftArray.reverse()之后。

【讨论】:

  • 正如评论的那样,您不应该像这样更新数据源数组。而是使用局部变量完成所有工作,然后更新表视图的数据源数组并重新加载。
【解决方案2】:

你可以使用异步调度队列,可能是它的工作。之后你的数据就会放在哪里。

DispatchQueue.main.async { self.tblHome.reloadData() }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    相关资源
    最近更新 更多