我正在尝试将存储在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
中,我希望通过像我一样运行此功能来以编程方式更改图像视图对象的其他部分。
预先感谢
答案 0 :(得分: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。