ios - 在 Swift 中访问变量值

标签 ios arrays swift parse-platform global-variables

我正在尝试将查询结果从 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/

相关文章:

ios - png 文件显示在模拟器上,但不显示在 ipad 上

javascript - YouTube iframe Embed 无法控制 iPad 上的音频

TDD session 期间出现 java.lang.AssertionError

ios - 如何使用 setObject Swift 2.0 实现基于时间的 NSCache

swift - 找出 uibutton 内标题的颜色

ios - 在 Swift 中捕获 NSJSONSerialization 错误

ios - 在 AVPLayerViewController 中添加事件指示器? (注意 : When video is in fullscreen mode)

iphone - [indexPath 行] 中的 EXC_BAD_ACCESS

javascript - 如何将函数用作字符串?

java - 仅在声明最后一个数组时出现的神秘错误