我正在使用parse并且我正在尝试使用以下代码来尝试检查哪些用户在数组@“Id1”中具有某个字符串。但是我没有得到任何物品。 whereKey:containsString仅用于搜索解析字符串值吗?如果是这样,我如何搜索解析数组以查看它们是否包含字符串?提前谢谢。
NSString *searchId = [[NSUserDefaults standardUserDefaults] objectForKey:@"searchId"];
PFQuery *query = [PFUser query]; //1
[query whereKey:@"Id1" containsString:searchId];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {//4
if (!error) {
NSLog(@"1");
self.ObjectsArray = nil;
self.ObjectsArray = [[NSArray alloc] initWithArray:objects];
} else {
[[[UIAlertView alloc] initWithTitle:@"Error" message:@"Please make sure you have a proper device connection." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}
}];
答案 0 :(得分:2)
如果您正在寻找完整的字符串,那就容易多了。要在数组中查找单个值,只需使用whereKey:equalTo:
,如下所述:
https://parse.com/docs/ios_guide#queries-arrays/iOS
[query whereKey:@"Id1" equalTo:searchId];
返回数组中至少有一个条目等于搜索条件的行(处理数字,字符串,布尔值等)。
如果您真的想要找到数组中至少有一个项目中包含字符串的记录,那么您将不得不变得棘手。
一种选择是使一个不可见的字段称为(例如)“Id1_search”。创建一个更新前的Cloud Code处理程序,它将所有数组值连接到逗号列表,也转换为小写。然后,您可以在该新字段上使用whereKey:containsString:
。