我正在尝试将查询结果从 Parse 保存到全局变量。但是,当我 println 退出函数查看数据是否保存时,数组返回空白。
但是如果我在检索/保存数据的闭包中 println,所有数据都会显示。
如何将数据保存到变量并在整个类中访问保存的数据,而不仅仅是在保存数据的函数内?
我的代码:
var itemImages10 = [Int: UIImage]()
var itemImages20 = [Int: UIImage]()
var itemImages30 = [Int: UIImage]()
override func viewDidLoad() {
super.viewDidLoad()
var query = PFQuery(className: "Items")
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
let imageObjects = objects as! [PFObject]
for (index, object) in enumerate(imageObjects) {
let thumbnail1 = object["image1"] as! PFFile
let thumbnail2 = object["image2"] as! PFFile
let thumbnail3 = object["image3"] as! PFFile
thumbnail1.getDataInBackgroundWithBlock{(imageData: NSData?, error: NSError?) -> Void in
if error == nil {
if let image = UIImage(data: imageData!) {
self.itemImages10[index] = image
println(self.itemImages10) // shows data
self.pageImages = self.itemImages10.values.array
}
}
}
}
}
println(self.itemImages10) // array is empty
最佳答案
您的问题是,在下载数据之后,关闭是异步执行的。使用 Bool
标记数据已下载,然后从代码的其他部分访问它。
关于ios - 在 Swift 中访问变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32068896/