从parse.com加载图像

时间:2015-08-14 14:08:38

标签: swift parse-platform sdwebimage

这是我要解析的保存图片:

func uploadPost(){
        var imageText = self.imageText.text

        if (imageView.image == nil){
            println("No image uploaded")
        }
        else{
            var posts = PFObject(className: "Posts")
            posts["imageText"] = imageText
            posts["uploader"] = PFUser.currentUser()
            posts.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
                if error == nil{
                    //**Success saving, now save image.**//

                    // Create an image data
                    var imageData = UIImagePNGRepresentation(self.imageView.image)
                    // Create a parse file to store in cloud
                    var parseImageFile = PFFile(name: "upload_image.png", data: imageData)
                    posts["imageFile"] = parseImageFile
                    posts.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
                        if error == nil{
                            // Take user home
                            println("Data uploaded")
                        }
                        else{
                            println(error)
                        }
                    })
                }
                else{
                    println(error)
                }
            })
        }
    }

如何从解析中加载图像?这就是我的Parse.com“帖子”数据的样子:Image

有什么建议吗?

我想也许就像使用这个:

self.imageView.sd_setImageWithURL(url, completed: block)

但我不知道如何获取网址。如果图像有不同的名称怎么办?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情

let imageFile = pfObject["imageFile"] as? PFFile
    if imageFile != nil{
        imageFile!.getDataInBackgroundWithBlock {
            (imageData: NSData?, error: NSError?) -> Void in
            if error == nil {
                if let imageData = imageData {
                    self.imageView.image = UIImage(data: imageData)!
                }
             }
         }
     }

其中pfObject是对象的引用。还有其他方法可以检查零值,但这应该有效。

只要您有对正确对象的引用(可以通过对objectId的查询获得),那么您应该只需要存储图像文件的列的名称而不是图像文件本身。