访问关闭之外的数据

时间:2015-07-18 02:07:39

标签: ios swift closures

我班上有一个数组,我试图填补一个关闭。但是,当我尝试访问/打印数组内容时,它在闭包之外似乎是空的。如何存储数据以便在闭包之外使用?

for index in 0..<6 {
        let picNumber = index + 1
        if let pica = currentuser.objectForKey("pic\(picNumber)") as? PFFile {
            pica.getDataInBackgroundWithBlock({ (data:NSData!, error:NSError!) -> Void in
                if error == nil {
                    self.pic1 = UIImage(data: data)
                    var imageS = scaleImage(self.pic1!, and: 200)
                    self.imagesForSection0.append(imageS)
                }
            })
            println(self.imagesForSection0)
        }
    }

1 个答案:

答案 0 :(得分:0)

Closure外面不是空的

方法getDataInBackgroundWithBlock异步,这意味着它会先返回。所以,你在打印功能中什么也看不到。

文档

  

从缓存中异步获取数据(如果可用)或从网络中获取其内容。

修改

for index in 0..<6 {
    let picNumber = index + 1
    if let pica = currentuser.objectForKey("pic\(picNumber)") as? PFFile {
        pica.getDataInBackgroundWithBlock({ (data:NSData!, error:NSError!) -> Void in
            if error == nil {
                self.pic1 = UIImage(data: data)
                var imageS = scaleImage(self.pic1!, and: 200)
                self.imagesForSection0.append(imageS)
            }
        println(self.imagesForSection0)
        //Then call reload data
        })
    }
}