Imr*_*med 11 iphone ios parse-platform
我有parse.com数据库.我在名为"text"的表中有列.我必须找到具有与AND条件匹配的多个键的文本.我尝试了各方面.我试着用:
PFQuery *query=[PFQuery queryWithClassName:@"post"];
[query whereKey:@"text" containedIn:Array];
Run Code Online (Sandbox Code Playgroud)
要么
PFQuery *query=[PFQuery queryWithClassName:@"post"];
[query whereKey:@"text" containsAllObjectsInArray:Array];
Run Code Online (Sandbox Code Playgroud)
要么
PFQuery *query=[PFQuery queryWithClassName:@"post"];
for (NSString *str in filtersArray) {
[query whereKey:@"text" containsString:str];
}
Run Code Online (Sandbox Code Playgroud)
但没有人工作.如果解析sdks支持或不支持,请指导我吗?如果是,我怎样才能达到效果.提前谢谢了 :)
EIDT:
例如,我在数据库中有三个条目作为文本:
"我有一个数据输入"
"我在数据中找不到任何东西"
"我怎样才能做到这一点"
如果通过"i"和"this"它应该返回条目(3)
如果传递"i"和"data"它应该返回条目(1,2)
如果通过"我"和"其他"它应该什么也不返回
您的查询不起作用的原因是因为 Parse 不支持在同一键上多次使用相同的约束(在本例中为“containsString:”)。
因此,我建议是查询一个正则表达式,该表达式将使用- (instancetype)whereKey:(NSString *)key matchesRegex:(NSString *)regex.
NSArray *qryStrings = @[str1, str2, str3, ....]; //strings you are trying to match
//string which will hold our regular expression
NSString *regexString = @"^"; //start off the regex
for (NSString *str in qryStrings) { //build the regex one filter at a time
regexString = [NSString stringWithFormat:@"%@(?=.*%@)", regexString, str];
}
regexString = [NSString stringWithFormat:@"%@.*$", regexString]; //finish off the regex
PFQuery *query = [PFQuery queryWithClassName:@"post"];
[query whereKey:@"text" matchesRegex:regexString];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
//objects array contains matching rows with matching strings
}
else {
NSLog(@"%@ %@", error, [error userInfo]);
}
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
775 次 |
| 最近记录: |