在闭包之外访问数据

Accessing Data Outside of Closure

我的 class 中有一个数组,我试图在一个闭包中填充它。但是,当我尝试 access/print 数组内容时,它似乎在闭包之外是空的。如何存储数据以供在闭包之外使用?

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)
        }
    }

闭包外不为空

方法getDataInBackgroundWithBlockasync,这意味着它将return first.So,你在打印函数中什么也看不到。

文档

Asynchronously gets the data from cache if available or fetches its contents from the network.

编辑

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
        })
    }
}