通过指针从用户类中检索数据

时间:2015-11-07 18:07:11

标签: ios swift parse-platform

我有一个名为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)")

        }

任何人都可以帮助我吗? 感谢

1 个答案:

答案 0 :(得分:0)

默认情况下,Parse查询不包含指针引用的实际对象,因此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)")
    }
}