我有文件,我附加到一个数组,我在一个块内做,但文件不会附加到数组。我检查了文件是否为空,但它们不是那么不是问题。我真的需要帮助。我被困了六个小时。 ImageSource是关于github的图像数据的api。干杯。
DispatchQueue.global(qos: .background).async {
() -> Void in
var files : [PFFile] = []
var photos2: [ImageSource]?
for i in 0..<13 {
let indexpath = IndexPath(item: i, section: 0)
photos2?[indexpath.row].fullResolutionImageData(completion: { (Data) in
if let imageData = Data, let image = UIImage(data: imageData), let data = UIImageJPEGRepresentation(image, 1.0){
let file = PFFile(data: data)
files.append(file!)
}
})
}
}
答案 0 :(得分:0)
文件 被附加到数组 - 即files
。但files
是一个本地变量,因此在块运行后,它会消失。如果您在其他地方有其他数组,或者您尝试在异步块之外访问files
的值,则会失败。
答案 1 :(得分:0)
似乎阵列&#34;照片2&#34;是零,所以函数&#34; fullResolutionImageData(完成:)&#34;没有做任何事情
答案 2 :(得分:0)
你需要在闭包之外声明你的数组,使它存在于闭包的范围之外。在视图控制器的顶部创建一个数组属性(var files = []),然后在闭包调用中
self.files.append(无论你要附加什么)