2014-02-18 32 views
0

目前,我有一個Game類表,其屬性名爲currentTurnPlayer。對於一個查詢,我很感興趣,讓所有的game對象,其中currentTurnPlayer的名字確實等於我self.currentUser.username如何使用自定義分析查詢來查找whereKey:doesNotContainString:?

換句話說,我被困在試圖做什麼默認解析相反「query methodwhereKey:containsString:並且僅檢索密鑰不包含字符串self.currentUser.username的對象。我將如何能夠做到這一點?謝謝!

回答

2

我會建議使用PFQuery與你自己的謂詞。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"currentTurnPlayer != %@", 
          self.currentUser.username]; 
PFQuery *query = [PFQuery queryWithClassName:[Game parseClassName] 
            predicate:predicate]; 

...然後照常執行查詢。

解析不支持所有謂詞語句,但它支持基本的謂詞,包括==!=

+0

這工作得很好!謝謝。 – daspianist

+0

這是否適用於部分字符串? – Moonwalkr

+0

這與whereKey:notEqualTo有什麼不同? – Moonwalkr

2

使用whereKey:notEqualTo:應該做的伎倆。但是,如果您沒有將確切名稱與確切名稱進行匹配(即允許用戶輸入搜索詞),那顯然不起作用。

在這種情況下,你會想要使用whereKey:matchesRegex:我不是一個正則表達式親,但這裏是一個例子。

[query whereKey:@"currentTurnPlayer" matchesRegex:[NSString stringWithFormat:@"(?i:^.*%@.*$)", playerName]];