如何从解析中检索图像并将其显示在 swift 的 UIImageView 中?

How to retrieve image from parse and display it in a UIImageView in swift?

所以我从昨天开始就一直在尝试从 Parse 中检索图像,但我很困惑。我读过类似的问题和例子,但都是人们先保存一些图像,然后再检索它。我想做的只是检索我手动上传的图像进行解析,我一直在尝试这样做:

    //Retrieving image from parse
    var object = PFObject(className:"ClassImage")

    let getParseImg = object["image"] as! PFFile
    getParseImg.getDataInBackgroundWithBlock {
    (imageData: NSData?, error: NSError?) -> Void in

        if (error == nil){

            if let imageData = imageData{
            println("Retrieving Image")
            let img = UIImage(data:imageData)
            self.imageView.image = img

            }
        }
    }

在第二行,它抛出一个 "unexpectedly found nil while unwrapping an Optional value",我已经尝试过 "if let getParseImg",然后它抛出另一个错误,最后该行看起来像这样:

if let getParseImg = object["image"] as? PFFile{

所以在那之后,一切顺利并编译,但它绝对没有做任何事情,它没有获取和显示图像,甚至没有打印 "Retrieving Image",任何想法我该如何解决这个,我是 Parse 的新手,所以还在熟悉它。

提前致谢!

您需要运行查询。另外,我使用了一个名为 imagesDict 的字典来确保您的照片以正确的顺序返回。

    var query = PFQuery(className: "ClassImage")
    query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in
        if error == nil {
            let imageObjects = objects as! [PFObject]
            for (index, object) in enumerate(imageObjects) {
                let thumbnail = object["image"] as! PFFile
                thumbnail.getDataInBackgroundWithBlock{(imageData: NSData?, error: NSError?) -> Void in
                    if error == nil {
                        if let image = UIImage(data: imageData!) {
                            self.imagesDict[index] = image
                            self.theTableView.reloadData()

                        }
                    }
                }

            }

        }
    }