【问题标题】:Storing array from Parse into local array将 Parse 中的数组存储到本地数组中
【发布时间】:2016-08-29 05:48:41
【问题描述】:

当我尝试将 Parse 中的数组存储到本地数组中时,我只能在 findObjectsInBackgroundWithBlock {...} 中访问它。当我在该块之外打印它时,它显示[]...

代码:

var qArray : [[Int]] = []

override func viewDidLoad() {
    super.viewDidLoad()

    let query = PFQuery(className: "Trivia")
    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) in
        if objects != nil {
            if let objects = objects {
                for object in objects {
                    self.qArray.append(object["mainPattern"] as! [Int])
                }
                print(self.qArray) // Prints a multi dimension array
            }
        }
        if error != nil {
            print(error)
        }
    }
    print(self.qArray) // prints []
}

【问题讨论】:

  • 你发现自己犯的错误了吗?

标签: arrays swift parse-platform


【解决方案1】:

这很可能是因为该数组尚未填充,因为它正在后台运行。您可以尝试使用dispatch_group 来规避此问题。

【讨论】:

    【解决方案2】:

    我认为您误解了 findInBackground 的含义。表示回调后的代码继续执行,所以调用query.findInBackground....,然后继续下一行,即print(self.qArray)强>。稍后,它会收到数据库的回复,并执行回调中的所有代码,这就是数组最终被填充的时候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 2014-05-10
      相关资源
      最近更新 更多