2015-09-09 74 views
0

我正在嘗試將Parse.com中的文本圖像查詢到我的UICollectionView。這是我的代碼:從Parse.com查詢到UICollectionView

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

        for oneobject in newObjects { 
         let text = oneobject["imageText"] as! String 
         let username = oneobject["username"] as! String 
         let time = oneobject.createdAt! 

         let placeholder = UIImage(named: "Placeholder")! // Put some placeholder image here till the other image downloads. 
         var OneBigObject = Details(username: username, text: text, CreatedAt: time, image: placeholder) 
         self.arrayOfDetails.append(OneBigObject) 
         dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() } 
         let userImageFile = oneobject["imageFile"] as! PFFile 
         userImageFile.getDataInBackgroundWithBlock({ (imageData:NSData?, error:NSError?) -> Void in 
          if error == nil { 
           if let newImage = UIImage(data: imageData!) { 
            OneBigObject.image = newImage 
            dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() } 
           } 
          } 
         }) 
        } 
       } 
      } 
     } 
    } 

Parse.com 「文章」: enter image description here

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 
    } 
} 

的圖像並僅顯示 「佔位符」 的形象,而不是從Parse.com圖像,但圖像文字和時間是正確的...任何建議?

+0

你可以把詳細信息類的代碼 – Lamar

+0

@Lamar - 在問題中添加。 –

回答

0

您已進入正確的軌道,但只有用戶的圖像爲零時,才應使用佔位符填充imageView.image

因此在getDataInBackgroundWithBlock你會檢查你是否有圖像,如果

-add用戶名

-add的imageText

-add圖像

- 添加了創建時間

- 然後插入所有信息到陣列 - 然後重新裝入 所述的CollectionView

然而,如果user'image是nil

-add的用戶名

-add imageText

-add的佔位符

-add其在

創建時間 - 然後插入所有信息到陣列 - 然後重新裝入 所述的CollectionView

+0

你能爲此提供一個代碼嗎?會非常有幫助。 –