swift - 使用 Swift 从 Parse 中检索图像

标签 swift uitableview parse-platform

我正在尝试从 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()

    }



}

最佳答案

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

    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 方法是异步的,所以它会自己运行,你的代码会在它完成之前继续.另一件事要习惯。

祝你好运!

关于swift - 使用 Swift 从 Parse 中检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31633493/

相关文章:

Swift:带有 inout 闭包的函数

ios - CollectionView 中的刷新数据不起作用 Swift

javascript - 如何在html选项框中显示查询结果?

string - swift/解析 : incrementing strings

ios - UITableViewCell 通过滑动而不是通过点击选择

Javascript 错误函数将错误消息记录为 'undefined'

ios - 将 'didMoveCellFromIndexPathToIndexPathBlock' 与核心数据一起使用

ios - Swift - 无法更新 UITabBar barTintColor

ios - 搜索栏结果未显示在表格 View 中

ios - 在 UITextView 中检测点击的字符串