如何将 PFFile 数组转换为 UIImage 数组?

Posted

技术标签:

【中文标题】如何将 PFFile 数组转换为 UIImage 数组?【英文标题】:How to turn a PFFile Array into a UIImage Array? 【发布时间】:2015-07-08 17:46:28 【问题描述】:

我在将 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]

)

【问题讨论】:

【参考方案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()

    


【讨论】:

以上是关于如何将 PFFile 数组转换为 UIImage 数组?的主要内容,如果未能解决你的问题,请参考以下文章

在for循环中将PFFile数组转换为UIImage返回空数组Swift

应用启动时加载用户配置文件,选择视图时崩溃,将 PFFile 转换为 UIImage

在 Uiimage 中将视频检索为 PFFile

如何在目标 c 中将 PFFILE 设置为本地 UIImage

从 Parse 将 PFFile 转换为 NSData

如何在Swift 4中将UIImage转换为字节数组