快速访问正文或范围之外的数组值

Posted

技术标签:

【中文标题】快速访问正文或范围之外的数组值【英文标题】: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) 

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

【问题讨论】:

【参考方案1】:

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

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

self.tableView.reloadData()

【讨论】:

它将始终为空白,因为 firebase 的响应是在该行执行后执行的,执行什么操作,表格将被填充 谢谢Sh_Khan,问题解决了。你太棒了?

以上是关于快速访问正文或范围之外的数组值的主要内容,如果未能解决你的问题,请参考以下文章

连续数组多维表示的快速元素访问

顺序容器2

一百万个结构数组,根据其中一项值排序,用双链表还是数组排序效率更好

全局访问由 Json 生成的数组值

顺序容器----顺序容器概述,容器库概览

如何快速访问元组字典中的值