2015-11-07 14 views
0

我有一個名爲Post的類,它存儲了Image,Text和upLoader的數據。上傳器是鏈接或指向User類的指針。通過指針從用戶類檢索數據

當我測試 噹噹前用戶等於指向的用戶,一切都很好。但是,當前用戶與上傳者不相同時,我無法從上傳者那裏獲取用戶名和電子郵件等數據。我可以檢索的唯一數據是[{ }]

查詢的代碼

let query = PFQuery(className:"Post") 

    query.orderByDescending("createdAt") 

    query.findObjectsInBackgroundWithBlock { 

     (objects: [PFObject]?, error: NSError?) -> Void in 



     if error == nil { 

      print("Successfully retrieved \(objects!.count) scores.") 

      if let objects = objects! as [PFObject]! { 

       for object in objects { 



        self.message.append(object["message"] as! String) 

        self.imageFiles.append(object["imageFile"] as! PFFile) 

        self.user.append(object["upLoader"] as! PFUser) 

        self.createdAT.append(object.createdAt!) 



        self.tableView.reloadData() 



       } 





      } 

     } else { 

      print("Error: \(error!) \(error!.userInfo)") 

     } 

誰能幫助我? 謝謝

回答

0

默認情況下,解析查詢不包括由指針引用的實際對象,因此您的upLoader只是對對象ID的引用,而不是實際對象。要包含實際的對象,只需將includeKey添加到您的查詢。例如:

let query = PFQuery(className:"Post") 
query.includeKey("upLoader") // This should do the trick. 
query.orderByDescending("createdAt") 

query.findObjectsInBackgroundWithBlock { 
    (objects: [PFObject]?, error: NSError?) -> Void in 

    if error == nil { 
     print("Successfully retrieved \(objects!.count) scores.") 

     if let returnedObjects = objects { 
      for object in returnedObjects { 
       self.message.append(object["message"] as! String) 
       self.imageFiles.append(object["imageFile"] as! PFFile) 
       self.user.append(object["upLoader"] as! PFUser) 
       self.createdAT.append(object.createdAt!) 

       dispach_async(dispatch_get_main_queue(), {() -> Void in 
        //UI stuff need to be on main thread 
        self.tableView.reloadData() 
       }) 
      } 
     } 
    } else { 
     print("Error: \(error!) \(error!.userInfo)") 
    } 
} 
+0

感謝兄弟。請告訴我原因。 –

+0

你的意思是Parse查詢不包含引用對象的原因嗎?我不知道,但我懷疑沒有對象的情況下獲取數據會更快,所以最好不要在不需要它們時包含它們。我剛剛完成了一個解析項目,而我的合作開發者和我有這個問題。 – ConfusedByCode