2015-10-27 93 views
0

所以,我在分析查詢具有基礎上找到一個關鍵是否等於某個對象的對象。這是幾行代碼。檢查查詢鍵是零解析

var gamesQuery = PFQuery(className: "Games") 
    gamesQuery.whereKey("challenged", equalTo: (PFUser.currentUser()!.objectId!)) 
    gamesQuery.whereKey("challenger", equalTo: PFUser.currentUser()!) 

然而,當該查詢運行,查詢被偶然發現的零由於沒有對象符合搜索參數。

有沒有辦法,我可以運行,可以檢查是否

gamesQuery.whereKey("challenged", equalTo: (PFUser.currentUser()!.objectId!)) 

是無任何檢查?任何有關這個問題的幫助將非常感激。

+0

我不明白你的問題 - 你想進行檢查,看有與==當前用戶的獨立挑戰者==當前用戶的質疑沒有記錄?你似乎在尋找用戶挑戰自己的遊戲? – Paulw11

+0

不,那不是我在做什麼,對不起,如果這個代碼是有點斷章取義。在這個遊戲中,用戶可以挑戰某人或受到挑戰。所以,我正在尋找任何單一用戶受到挑戰或挑戰他人的遊戲。我正在尋找一種方法來測試是否挑戰==當前用戶或挑戰者==當前用戶是否爲零。 @ Paulw11 –

+0

您可以忽略代碼,它更多的只是一個例子。我正在尋找的一種方法是檢查「whereKey等於」語句是否爲零。 @ Paulw11 –

回答

2

您當前的查詢本質上是一個and - 「尋找到挑戰==當前用戶和挑戰者==當前用戶對象」。

我認爲你是一個or查詢之後 - 「尋找到挑戰==當前用戶或挑戰者==當前用戶對象」。您可以在解析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. 
    } 
} 
+0

謝謝,這就是我一直在尋找的 –