如何在块中将文件追加到数组中

时间:2017-06-25 22:15:33

标签: swift xcode parse-platform swift3 pffile

我有文件,我附加到一个数组,我在一个块内做,但文件不会附加到数组。我检查了文件是否为空,但它们不是那么不是问题。我真的需要帮助。我被困了六个小时。 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!)

                    }
                })
        }
  }

3 个答案:

答案 0 :(得分:0)

文件 被附加到数组 - 即files。但files是一个本地变量,因此在块运行后,它会消失。如果您在其他地方有其他数组,或者您尝试在异步块之外访问files的值,则会失败。

答案 1 :(得分:0)

似乎阵列&#34;照片2&#34;是零,所以函数&#34; fullResolutionImageData(完成:)&#34;没有做任何事情

答案 2 :(得分:0)

你需要在闭包之外声明你的数组,使它存在于闭包的范围之外。在视图控制器的顶部创建一个数组属性(var files = []),然后在闭包调用中

self.files.append(无论你要附加什么)