使用 Swift 从 Parse 中检索图像

Posted

技术标签:

【中文标题】使用 Swift 从 Parse 中检索图像【英文标题】:Retrieving an image from Parse with Swift 【发布时间】:2015-07-26 04:00:52 【问题描述】:

我正在尝试从 Parse 中检索图像和文本。我可以检索保存的文本,但不能检索图像。我究竟做错了什么?下面是我要检索图像的函数的代码。提前致谢。

func showImage() 
    var query = PFQuery(className: "Description")
    query.orderByDescending("ceatedAt")
    query.findObjectsInBackgroundWithBlock  (objects: [AnyObject]?, error: NSError?) -> Void in

        self.imageArray = [UIImage]()
        if let objects = objects 
            for imageObject in objects 

                let userImage: UIImage? = (imageObject as! PFObject)["UserPhoto"] as? UIImage
                if userImage != nil 
                    self.imageArray.append(userImage!)
                
            

        
        self.tableView.reloadData()

    




【问题讨论】:

【参考方案1】:

一开始很棘手,但它变得容易多了。这是使它工作的代码:

    let userImage = (imageObject as! PFObject)["UserPhoto"] as! PFFile 


    userImage.getDataInBackgroundWithBlock 
        (imageData, error) -> Void in


        if error == nil 
            let image = UIImage(data: imageData!)

            self.imageArray.append(userImage!)

         else 
        

问题在于 parse 将图像存储为PFFiles,它们还不是直接的图像,将其视为 URL 而不是任何东西。您必须下载图像,然后对其进行处理以使其正常工作。您不能直接将其转换为 UIImage。

需要注意的一点(因为这在前段时间给我带来了麻烦)是.getDataInBackgroundWithBlock 方法是异步的,因此它会自行运行,并且您的代码将在它完成之前继续运行。另一件要习惯的事情。

祝你好运!

【讨论】:

谢谢!我仍然没有在表格视图中恢复图像......我需要对 Storyboard 做些什么吗?就像创建一个 UIImageView 并将我要下载的图像连接到它? 绝对!我必须更多地了解您的代码才能提供更多建议。如果您想为 tableview 制作自定义单元格,则需要查找有关如何执行此操作的教程,然后集成上面的代码以为 tableview 单元格提供图片。不过,您现在走在正确的轨道上。

以上是关于使用 Swift 从 Parse 中检索图像的主要内容,如果未能解决你的问题,请参考以下文章

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

Swift 无法从 parse.com 检索图像

使用 Swift 和 Parse 创建图像预览

从 Parse.com (Swift) 检索数据

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

Swift 3 上传图片到 Parse Server