0

我正在使用解析并尝试使用下面的代码来尝试检查哪些用户在数组@“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];
    }
}];
4

1 回答 1

2

如果您正在寻找完整的字符串,它会容易得多。要在数组中查找单个值,只需whereKey:equalTo:按照此处所述使用:

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

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

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

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

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

于 2014-02-13T04:19:57.773 回答