解析数组中的查找字符串

时间:2014-02-12 18:08:47

标签: objective-c arrays parse-platform pfquery

我正在使用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];
    }
}];

1 个答案:

答案 0 :(得分:2)

如果您正在寻找完整的字符串,那就容易多了。要在数组中查找单个值,只需使用whereKey:equalTo:,如下所述:

https://parse.com/docs/ios_guide#queries-arrays/iOS

[query whereKey:@"Id1" equalTo:searchId];

返回数组中至少有一个条目等于搜索条件的行(处理数字,字符串,布尔值等)。

如果您真的想要找到数组中至少有一个项目中包含字符串的记录,那么您将不得不变得棘手。

一种选择是使一个不可见的字段称为(例如)“Id1_search”。创建一个更新前的Cloud Code处理程序,它将所有数组值连接到逗号列表,也转换为小写。然后,您可以在该新字段上使用whereKey:containsString: