我必须查询一个名为"承诺"它有一个名为" 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 {
self.committment.append(Committment(id: object.objectId!, needName: object["needName"] as! String))
self.commitObject.append(object)
}
self.tableView.reloadData()
} else {
print("failure")
}
}
这是我当前的查询。它在needName上返回nil,所以很明显它不起作用。任何帮助表示赞赏。
答案 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%准确(我是用自由式写的)但我确信你有这个想法..