【问题标题】:How to turn a PFFile Array into a UIImage Array?如何将 PFFile 数组转换为 UIImage 数组?
【发布时间】:2026-01-15 03:55:02
【问题描述】:

我在将 PFFile 数组(名为:activeimageFilearray)转换为 UIImage 数组(名为:activeImageArray)时遇到了一些问题。我当前的 for-in 方法仅附加 PFFile 的第一个条目,而不是将 PFFile 数组中的所有整体附加到我的新 UIImage 数组中。因此,当我执行最后一行代码时,它会显示 [致命错误:数组索引超出范围],因为 UIImage 数组只有一个值。提前致谢。

for x in self.activeimageFileArray
{
x.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
if error == nil
{
let image = UIImage(data: imageData!)
self.activeimageArray.append(image!)
}
println(self.activeimageArray)
self.venueImage.image = self.activeimageArray[1]

})
}

【问题讨论】:

    标签: arrays swift parse-platform uiimage pffile


    【解决方案1】:

    这可能是一个并发问题,因为您打印出图像内容的行将在回调完成之前执行,这就是后台任务的本质。如果您真的想查看图像的打印内容,可以在回调中打印,或者完全在 for 循环之外打印。

    【讨论】:

      【解决方案2】:

      首先你必须使用 ParseUI,这样你才能使用 PFImageView

      pod 'ParseUI'

      在你的类中导入 ParseUI

      import UIKit
      import ParseUI
      import Parse
      
      class ViewController: UIViewController {
      
      var Obj = PFObject(className: "classname")
      
       @IBOutlet weak var venueImage: PFImageView!
      
       override func viewDidLoad() {
          super.viewDidLoad() 
      
      // loading image form PFFile Array 
       let images = Obj["images"] as! [PFFile]
       let image = images[0] as PFFile
       self.venueImage.file = image
       self.venueImage.loadInBackground()
      
          }
      
      }
      

      【讨论】: