我班上有一个数组,我试图填补一个关闭。但是,当我尝试访问/打印数组内容时,它在闭包之外似乎是空的。如何存储数据以便在闭包之外使用?
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)
}
}
答案 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
})
}
}