用Swift从Parse中检索图像

时间:2015-07-26 04:00:52

标签: 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()

    }



}

1 个答案:

答案 0 :(得分:2)

起初它很棘手,但它变得容易多了。以下是使其有效的代码:

    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 {}
        }}

问题在于,解析将图像存储为PFFiles,它们还不是直接图像,将其视为URL而非任何内容。您必须下载图像,然后对其执行某些操作才能使其正常工作。你不能直接把它当作UIImage。

需要注意的一件事(因为这给我带来了麻烦)是因为.getDataInBackgroundWithBlock方法是异步的,所以它会在它自己运行,并且你的代码将继续它已经完成了。另一件需要习惯的事情。

祝你好运!