目前,我有一个Game
类表,其中包含一个名为currentTurnPlayer
的属性。对于查询,我有兴趣获取所有game
个对象,其中currentTurnPlayer
的名称不等于我的self.currentUser.username
换句话说,我坚持尝试与默认的Parse'query method whereKey:containsString:
做相反的操作,并且仅检索密钥不包含字符串{{1}的对象}。我怎么能做到这一点?谢谢!
答案 0 :(得分:2)
使用whereKey:notEqualTo:
应该可以解决问题。但是,如果您没有将确切名称与确切名称相匹配(即允许用户输入搜索字词),那么这显然不会奏效。
在这种情况下,您希望使用whereKey:matchesRegex:
我不是正则表达式专家,但这是一个例子。
[query whereKey:@"currentTurnPlayer" matchesRegex:[NSString stringWithFormat:@"(?i:^.*%@.*$)", playerName]];
答案 1 :(得分:2)
我建议将PFQuery与您自己的谓词一起使用。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"currentTurnPlayer != %@",
self.currentUser.username];
PFQuery *query = [PFQuery queryWithClassName:[Game parseClassName]
predicate:predicate];
...然后照常执行查询。
Parse不支持所有谓词语句,但它支持基本语句,包括==
和!=
。