如何快速将 PFFile 转换为 UIImage?
Posted
技术标签:
【中文标题】如何快速将 PFFile 转换为 UIImage?【英文标题】:How to convert an PFFile to an UIImage with swift? 【发布时间】:2015-05-22 15:26:47 【问题描述】:在这段代码中,应用程序正在从解析中获取文件,现在我希望它显示在 UIImageView 上,但我得到一个错误...
这是我的代码...
var ImageArray:UIImage = [UIImage]()
var textArray:String = [String]()
var query = PFQuery(className:"ClassName")
query.findObjectsInBackgroundWithBlock
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil
if let objects = objects as? [PFObject]
for object in objects
//this works fine
self.textArray.append(object.valueForKey("Image")! as! String)
//this does not work...
self.ImageArray.append(object.valueForKey("Image")! as! PFFile)
//I get an error that says PFFile is not convertible to UIImage. How do i convert it?
else
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
【问题讨论】:
【参考方案1】:PFFile 是任何类型文件的解析表示。要获取“真实”文件(图像),您需要调用getDataInBackgroundWithBlock
。试试看:
if let userPicture = object.valueForKey("Image")! as! PFFile
userPicture.getDataInBackgroundWithBlock(
(imageData: NSData!, error NSError!) -> Void in
if (error == nil)
let image = UIImage(data:imageData)
self.ImageArray.append(image)
)
【讨论】:
我收到一条错误消息,提示“PFData 没有成员名称“getDataInBacgroundWithBlock” 我收到另一个错误,上面写着“无法调用 'getDataInBackgroundWithBlock; 带有类型的参数列表 ( (imageData: NSData!, error NSError!) -> Void” 请在将其提交为回答。 拜托,谷歌之前问什么:) ***.com/questions/29761799/…【参考方案2】:Swift 1.2+ 版本
if let userPicture = PFUser.currentUser()!.valueForKey("Image") as? PFFile
userPicture.getDataInBackgroundWithBlock
(imageData: NSData?, error: NSError?) -> Void in
if error == nil
let image = UIImage(data:imageData!)
self.ImageArray.append(image)
else
print("Error: \(error)")
【讨论】:
【参考方案3】:在 Parse 上使用 Swift 3。
if let photo = obj.file as? PFFile
photo.getDataInBackground(block:
PFDataResultBlock in
if PFDataResultBlock.1 == nil //PFDataResultBlock.1 is Error
if let image = UIImage(data:PFDataResultBlock.0!)
//PFDataResultBlock.0 is Data
photoCell.attachedPicture.image = image
)
【讨论】:
以上是关于如何快速将 PFFile 转换为 UIImage?的主要内容,如果未能解决你的问题,请参考以下文章
应用启动时加载用户配置文件,选择视图时崩溃,将 PFFile 转换为 UIImage
在for循环中将PFFile数组转换为UIImage返回空数组Swift