2015-08-15 62 views
2

由於某些奇怪的原因,我的圖片已停止保存以進行解析。之前,我的代碼工作正常,我沒有做任何修改。如何將圖像保存到解析?

這裏是我的代碼:

var posts = PFObject(className: "Product") 
      posts["shortDescription"] = productShortDescription 
      posts["user"] = PFUser.currentUser() 
      posts["longDescription"] = productLongDescription 
      posts["title"] = productTitle 
      posts["price"] = productPrice 
      posts.saveInBackgroundWithBlock({ 
       (success: Bool, error: NSError?) -> Void in 

       if error == nil { 
        //success saving, now save image 

        //create image data 

        var imageData = UIImagePNGRepresentation(self.newItemImageView.image) 


        //create parse file 

        var parseImageFile = PFFile(name: "upload_image.png", data: imageData) 
        posts["imagePNG"] = parseImageFile 
        posts.saveInBackgroundWithBlock({ 
         (success: Bool, error: NSError?) -> Void in 

         if error == nil { 
          // take user home 
          println("data uploaded") 
          self.performSegueWithIdentifier("returnHomeAfterUpload", sender: self) 
         }else { 
          println(error) 

         } 


        }) 

       }else { 

        println(error) 
       } 

      }) 

一切是完美的儲存,但什麼是我的圖像數據的問題? 謝謝!

+0

您不保存parseImageFile,您還需要保存以及 –

+0

如果您要停止學習Swift並使用ObjC,然後在Parse中使用所有教程並安裝應用程序,它可能會爲您節省大約幾個小時的時間這是做到這一點,並在4個小時左右開始工作。 Parse明確表示,他們沒有太多興趣支持Swift,我同意ObjC的7年曆史,現在不知何故Swift更容易,但它需要知道Apple的東西,所以不是那麼卑鄙,但現實是這個:如果你使用ObjC,那麼你的生活將會變得更加容易,因爲在那裏有多少信息並不難學。 – Loxx

+0

觀看這個視頻解析,他們解釋了他們爲什麼不全力支持在全油門模式下:http://blog.parse.com/categories/videos/專門觀看此視頻「問解析任何東西 - 六月版在這裏!」 – Loxx

回答

1

在你的代碼是不節能parseImageFile,所以首先parseImageFile.SaveInBackground併成功將其設置爲posts,然後保存posts以及

應該是這樣的

  var posts = PFObject(className: "Product") 
       posts["shortDescription"] = productShortDescription 
       posts["user"] = PFUser.currentUser() 
       posts["longDescription"] = productLongDescription 
       posts["title"] = productTitle 
       posts["price"] = productPrice 
       posts.saveInBackgroundWithBlock({ 
        (success: Bool, error: NSError?) -> Void in 

        if error == nil { 
         //success saving, now save image 
         //create image data 
         var imageData = UIImagePNGRepresentation(self.newItemImageView.image)        
         //create parse file 
         var parseImageFile = PFFile(name: "upload_image.png", data: imageData) 
parseImageFile.saveInBackgroundWithBlock({ 
posts["imagePNG"] = parseImageFile 
         posts.saveInBackgroundWithBlock({ 
          (success: Bool, error: NSError?) -> Void in 

          if error == nil { 
           // take user home 
           println("data uploaded") 
           self.performSegueWithIdentifier("returnHomeAfterUpload", sender: self) 
          }else { 
           println(error) 

          } 


         }) 
}) 


        }else { 

         println(error) 
        } 

       }) 

我沒有測試這個代碼在編輯器上你可能會發現一些語法錯誤,但它應該是這樣的...

所以事情是當你創建parseImageFile,然後saveInBackground a nd裏面塊設置它的職位,然後再保存發佈

+0

我很理解你在說什麼。這說得通。但我無法圍繞這種格式進行包裝。我應該補充說我是移動開發新手。 – V1P3R

+0

在後臺保存帖子的位置? – V1P3R

+0

我已經更新了代碼,你的代碼應該看起來像這樣,我沒有在編輯器上測試過,你可能會修正一​​些語法問題... –

0

我檢查了你的代碼,它的工作正常。

 let image = UIImage(named: "img.jpg") 
     let data = UIImagePNGRepresentation(image) 
     let file = PFFile(name: "img", data: data) 

     let parseObj = PFObject(className: "testClass") 
     parseObj["text"] = "hello" 
     parseObj["image"] = file 

     parseObj.saveInBackgroundWithBlock { (_, _) -> Void in } 

試試這個,如果這段代碼會起作用 - 最簡單的方法就是刪除「Product」表並重新創建它。

+0

我不斷測試我的代碼,出於某種原因,使用我的相機拍攝的圖像不會保存爲解析。任何想法爲什麼? – V1P3R

+0

我的代碼很好,就像你說的。截圖張貼沒有問題。 – V1P3R

+0

你能告訴我一個字段外觀的截圖嗎?是(未定義)? – vsilux