使用指针进行Swift Parse查询

时间:2016-12-12 19:20:50

标签: swift parse-platform

我必须查询一个名为"承诺"它有一个名为" need"的指针。我需要在查询Commitment时能够访问需要指针中的数据。我必须查询承诺,因为我必须检查"提交者"针对当前用户的对象。基本上我希望能够看到当前用户已经提交的需求。

承诺类:

ScreenShot

需要班级:

ScreenShot

let query = PFQuery(className: "Commitment")
     query.order(byDescending: "createdAt")
    query.whereKey("committer", equalTo:  PFUser.current()!)
    query.includeKey("need")
    query.findObjectsInBackground {
        (objects: [PFObject]?, error: Error?) -> Void in
        if let objects = objects as [PFObject]? {
            self.committment = []
            self.commitObject = []
            for object in objects {

                self.committment.append(Committment(id: object.objectId!, needName: object["needName"] as! String))
                self.commitObject.append(object)
            }
            self.tableView.reloadData()
        } else {
            print("failure")
        }
    }

这是我当前的查询。它在needName上返回nil,所以很明显它不起作用。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

你得到 nil 的原因是因为你没有访问need对象但是你试图从Commitment对象中获取它 只需将您的代码更改为以下内容:

let query = PFQuery(className: "Commitment")
     query.order(byDescending: "createdAt")
    query.whereKey("committer", equalTo:  PFUser.current()!)
    query.includeKey("need")
    query.findObjectsInBackground {
        (objects: [PFObject]?, error: Error?) -> Void in
        if let objects = objects as [PFObject]? {
            self.committment = []
            self.commitObject = []
            for object in objects {
                let need = object["need"] as [PFObject]?
                self.committment.append(Committment(id: object.objectId!, needName: need["needName"] as! String))
                self.commitObject.append(object)
            }
            self.tableView.reloadData()
        } else {
            print("failure")
        }
    }

请注意,我首先访问 need 对象,然后从中提取 needName 属性。

顺便说一句!我不确定语法是否100%准确(我是用自由式写的)但我确信你有这个想法..