2016-01-18 42 views
1

我试图从iOS应用上传图像到Parse类。试图将图像从iOS上传到parse.com

的视图控制器有两个按钮和一个ImageView的

按钮1:从设备的图片集锦选择图片,

ImageView的(myImageView):示出了所选的图像。

这部分的应用程序工作正常。

在解析,我创建了一个名为citas_servicio类,有一个叫照片列中,从类型的文件。

按钮2动作是subirFoto

@IBAction func subirFoto(sender: AnyObject) { 
    if myImageView.image == nil { 
     //image is not included alert user 
     print("Image not uploaded") 
    }else { 
     var posts = PFObject(className: "citas_servicio") 
     posts.saveInBackgroundWithBlock({(success: Bool, error: NSError?) -> Void in 
      if error == nil { 
       /**success saving, Now save image.***/ 

       //create an image data 
       var imageData = UIImagePNGRepresentation(self.myImageView.image!) 
       //create a parse file to store in cloud 
       var parseImageFile = PFFile(name: "uploaded_image.png", data: imageData!) 
       posts["foto"] = parseImageFile 
       posts.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in 
        if error == nil { 
         //take user home 
         print("data uploaded") 
        }else { 
         print(error) 
        } 
       }) 
      }else { 
       print(error) 
      } 
     }) 
    } 
} 

一旦Button2被点击时,在解析中创建一个新的记录,但图像不是在它加入,并打印在控制台没有消息。

代码有什么问题?

+0

请参阅以下链接:http://stackoverflow.com/a/18840159/5247310 –

回答

1

您在保存Object之前设置foto在帖子这就是为什么你收到错误。首先保存图像,然后将其设置为Object

let posts = PFObject(className: "citas_servicio") 
     //create an image data 
     let imageData = UIImagePNGRepresentation(self.myImageView.image!) 
     //create a parse file to store in cloud 
     let parseImageFile = PFFile(name: "uploaded_image.png", data: imageData!) 
     parseImageFile?.saveInBackgroundWithBlock({ (success, error) -> Void in 
      if success{ 
       posts["foto"] = parseImageFile 
       posts.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in 
        if error == nil { 
         //take user home 
         print("data uploaded") 
        }else { 
         print(error) 
        } 
       }) 
      } 
     }) 
+0

谢谢,让我检查它... – mvasco

+0

您的代码有效,谢谢 – mvasco

1

首先保存parseImageFile在成功后,然后将其与PFObject关联,并保存后台(PFObject)在background.I希望它会工作。

+0

谢谢,但你可以发布你的答案与代码示例? – mvasco

+0

请参阅以下链接: - http://stackoverflow.com/questions/18839834/how-to-upload-an-image-to-parse-com-from-uiimageview/18840159#18840159 –

1

你并不需要保存对象,然后用照片再次保存,只需添加到PFObject后创建它。

var posts = PFObject(className: "citas_servicio") 
let imageData = UIImagePNGRepresentation(self.myImageView.image!) 
let parseImageFile = PFFile(name: "uploaded_image.png", data: imageData!) 
posts["foto"] = parseImageFile 

之后,您可以轻松地将对象保存在后台。