在 Swift 中显示来自 Parse 的图像

Posted

技术标签:

【中文标题】在 Swift 中显示来自 Parse 的图像【英文标题】:Display Image From Parse In Swift 【发布时间】:2019-04-13 23:26:09 【问题描述】:

我正在尝试将存储在 Buddy For Parse 中的图像显示到 UIImageView 中,但是我不断收到此错误:

无法将“PFFileObject”(0x1045e0568)类型的值转换为“NSString”(0x1041d75d8)。 2019-04-13 18:15:09.869460-0500 PerfectLaptop [43839:3094232] 无法将“PFFileObject”(0x1045e0568)类型的值转换为“NSString”(0x1041d75d8)。

我已经在 Parse 中存储了许多字符串,并且能够毫无问题地访问它们,并且还存储了我想要使用的图像,但是无论我尝试什么,我似乎都无法让它工作.我发现的许多解决方案包括将对象转换为 PFFile,但是这似乎不再存在。

let query = PFQuery(className: "whichOneRecommended")
query.findObjectsInBackground  (objects, error) in
    if error == nil
    
        if let returnedobjects = objects
        
            for object in returnedobjects
            

                if (object["whichOne"] as! String).contains("\(self.whichOneJoined)")
                
                    self.laptopImage.image = UIImage(named: (object["laptopImage"]) as! String)



                
            
        
    

虽然图像文件在解析中是可查看和可下载的,但我似乎无法将其显示在 imageview 中,并且我希望通过运行此函数以编程方式更改图像视图,就像我使用其他部分一样对象。

提前致谢

【问题讨论】:

如果它解决了你的问题,如果你能接受我的回答会很有帮助。如果没有,请告诉我,我会尽力提供进一步帮助。 【参考方案1】:

首先要注意的是PFFile已经重命名为PFFileObject

您正在尝试将 object["laptopImage"](它是 Any 类型的值)传递给 UIImage(named:),但由于该函数需要 String,因此无法完成。

首先你需要创建一个PFFileObject类型的常量:

let file = object["laptopImage"] as? PFFileObject

然后下载文件数据,从PFFileObject创建一个UIImage并将图像分配给UIImageView

file.getDataInBackground  (imageData: Data?, error: Error?) in
    if let error = error 
        print(error.localizedDescription)
     else if let imageData = imageData 
        let image = UIImage(data: imageData)
        self.laptopImage.image = image
    

详情请见section on files in the ios Guide。

【讨论】:

【参考方案2】:

guard let imageString = message, 让 imageURL = URL(string: imageString) else return

    do 
let imageData = try Data(contentsOf: imageURL)
    image.image = UIImage(data: imageData)
     catch 

    

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于在 Swift 中显示来自 Parse 的图像的主要内容,如果未能解决你的问题,请参考以下文章

Swift 2.0:需要在 Parse 的 PFQueryTableViewController 上显示图像(PFFile)?

PFImageView 问题:无法在表格视图单元格中显示来自 Parse 的图像

在 tableview Parse 中显示来自类子类别的数据

从 Parse (Swift) 中检索图像到 imageView

使用 Swift 和 Parse 创建图像预览

来自 URL 的 Swift 表格视图图像在选择单元格之前不会显示