在 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 中显示来自类子类别的数据