1

我正在尝试将存储在 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,并且我希望通过运行此函数以编程方式更改图像视图,就像我对对象的其他部分所做的那样。

提前致谢

4

2 回答 2

4

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

您正在尝试传递whichobject["laptopImage"]是无法完成的类型值,因为该函数需要一个.AnyUIImage(named:)String

首先,您需要创建一个类型的常量PFFileObject

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

然后下载文件数据,从创建 UIImagePFFileObject并将图像分配给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
    }
}

有关这方面的详细信息,请参阅 iOS 指南中的文件部分

于 2019-04-14T14:19:19.457 回答
0

守卫让 imageString = 消息,让 imageURL = URL(string: imageString) else { return }

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

    }
于 2021-12-23T10:19:30.327 回答