【问题标题】:Accessing Array values outside of body or scope in swift快速访问正文或范围之外的数组值
【发布时间】:2019-06-22 02:03:44
【问题描述】:

我声明了一个数组,然后给它赋值。但是,当我尝试在同一个视图控制器中访问它时,值不存在。有没有办法让数组值可以在闭包之外访问

func loadReviews(){
    Firestore.firestore().collection("BusinessReview").whereField("BusinessID", isEqualTo: businessID).limit(to: 3).getDocuments { (querySnapShot, err) in
        if let err = err {
            print("error\(err)") 
        } else {
            for document in querySnapShot!.documents { 
                self.reviewsArr.append(document.data()["Review"] as! String) 
            }
        }
    } 
    dump(reviewsArr) 
}

虽然数组是在附加代码之后填充的,但我稍后会在其空白处进行转储。我该如何解决这个问题?

【问题讨论】:

    标签: arrays swift uitableview


    【解决方案1】:

    对 firebase 的调用是异步的,因此您需要在完成内重新加载表

    for document in querySnapShot!.documents { 
        self.reviewsArr.append(document.data()["Review"] as! String) 
    }
    self.tableView.reloadData()
    

    【讨论】:

    • 它将始终为空白,因为 firebase 的响应是在该行执行后执行的,执行什么操作,表格将被填充
    • 谢谢Sh_Khan,问题解决了。你太棒了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2017-10-19
    • 2023-04-04
    相关资源
    最近更新 更多