所以,我在解析中有一个查询,它必须根据一个键是否等于某个对象来查找对象。这是几行代码。
var gamesQuery = PFQuery(className: "Games")
gamesQuery.whereKey("challenged", equalTo: (PFUser.currentUser()!.objectId!))
gamesQuery.whereKey("challenger", equalTo: PFUser.currentUser()!)
但是,运行此查询时,由于没有适合搜索参数的对象,有时会将查询设置为nil。
是否可以检查我是否可以检查是否
gamesQuery.whereKey("challenged", equalTo: (PFUser.currentUser()!.objectId!))
是零吗?任何有关此问题的帮助都将非常感激。
答案 0 :(得分:2)
您当前的查询基本上是and
- "查找对象,其中challenged ==当前用户和挑战者==当前用户"。
我认为您正在进行or
查询 - "找到challenged == current user or challenger == current user"的对象。您可以在Parse中使用compound query执行此操作 -
let challengedQuery = PFQuery(className: "Games")
challengedQuery.whereKey("challenged", equalTo: (PFUser.currentUser()!.objectId!))
let challengerQuery = PFQuery(className: "Games")
challengerQuery.whereKey("challenger", equalTo: PFUser.currentUser()!)
let gamesQuery = PFQuery.orQueryWithSubqueries([challengedQuery, challengerQuery])
gamesQuery.findObjectsInBackgroundWithBlock {
(results: [PFObject]?, error: NSError?) -> Void in
if error == nil {
// results contains challenger and challenged games.
}
}