2015-08-18 106 views
0

在我的代碼中,它接收來自parse的圖像,並將其顯示在imageView中。下面是代碼:從Parse.com獲取數據到swift

http://pastebin.com/kDjAgPRT 

如果需要的話,這是我上傳的代碼:

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_image2.png", data: imageData) 
        //var parseImageFile = PFFile(data: imageData) 
        posts["imageFile"] = parseImageFile 
        posts.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in 
         if error == nil{ 
          // Take user home 
          println(success) 
          println("Data uploaded") 
         } 
         else{ 
          println(error) 
         } 
        }) 
       } 
       else{ 
        println(error) 
       } 
      }) 
     } 
    } 

正如你所看到的,這裏是我的解析 「文章」 裏面: enter image description here

如何我還可以爲圖像獲取「imageText」,「上傳者」和「createdAt」嗎?像instagram一樣。

+0

所以一切都是當你保存權好,只想讓他們回到你的tableView – Lamar

+0

@Lamar - 是的,正確的。但不是表視圖,我正在使用CollectionView。 –

回答

1

試試這個:

struct Details { 
var username:String! 
var text:String! 
var CreatedAt:NSDate! 
var image:UIImage! 
init(username:String,text:String,CreatedAt:NSDate,image:UIImage){ 

    self.username = username 
    self.text = text 
    self.CreatedAt = CreatedAt 
    self.image = image 
    } 
} 

func QueryImagesFromParse(){ 

    var arrayOfDetails = [Details]() 

var query = PFQuery(className: "Posts") 
query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in 
    if error == nil 
    { 
     if let newObjects = objects as? [PFObject] { 

      for oneobject in newObjects { 
       var text = oneobject["imageText"] as! String 
       var username = oneobject["uploader"] as! String 
        var time = oneobject.createdAt 
        var userImageFile = oneobject["imageFile"] as! PFFile 
       userImageFile.getDataInBackgroundWithBlock({ (imageData:NSData?, error:NSError?) -> Void in 
        if error == nil { 
         let newImage = UIImage(data: imageData!) 

         var OneBigObject = Details(username: username, text: text, CreatedAt: time!, image: newImage!) 
          arrayOfDetails.append(OneBigObject) 
         // then reloadData 


        } 
        }) 

      } 

     } 
     } 
    } 
} 

所以現在與arrayOfDetails你可以填充你的細胞......

+0

嗯,當我運行這個它運行沒有錯誤,但我得到線程錯誤:「無法將'PFUser'類型(0x1001852b0)的值轉換爲'NSString'(0x195d99768)。」,行:「var username = oneobject [ 「uploader」] as!String「。更新後的代碼:http://pastebin.com/S5F4RF2M –

+0

我看到發生了什麼,所以你知道你應該用用戶名創建一個列,並將uploader調用到解析中......然後在上傳代碼中,你應該保存** currentUser.username ** ....這是一個簡單的方法,你不必處理指針 – Lamar

+0

好吧,現在沒有錯誤,但沒有圖像顯示..? –