混合两个PFQuery结果

jac*_*zki 0 objective-c ios parse-platform pfquery

我希望得到两个PFQuery结果的混合.在下面的代码中,我得到了两个结果的交集结果(所以用户名和fullName包含的所有用户都有self.searchText),我想要包含所有结果(所以用户名为equals的self.searchText所有用户和所有fullName等于的用户)self.searchText).

PFQuery *query = [PFUser query];
[query whereKey:@"username" containsString:self.searchText];
[query whereKey:@"fullName" containsString:self.searchText];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (error) {
        NSLog(@"%@ %@", error, [error userInfo]);
    } else {
        self.searchResults = [[NSMutableArray alloc] initWithArray:objects];
        NSLog(@"%@", objects);
        [self.tableView reloadData];
    }
}];
Run Code Online (Sandbox Code Playgroud)

小智 8

你要做的是让两组的联盟(OR)不是他们的交集(AND)

使用以下代码应该为您带来符合这些标准的所有用户

PFQuery *firstQuery = [PFUser query];
[firstQuery whereKey:@"username" containsString:self.searchText];

PFQuery *secondQuery = [PFUser query];
[secondQuery whereKey:@"fullName" containsString:self.searchText];

PFQuery *query = [PFQuery orQueryWithSubqueries:@[firstQuery ,secondQuery ]];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) {
  if (error) {
    NSLog(@"%@ %@", error, [error userInfo]);
} else {
    self.searchResults = [[NSMutableArray alloc] initWithArray:objects];
    NSLog(@"%@", objects);
    [self.tableView reloadData];
}
}];
Run Code Online (Sandbox Code Playgroud)

这是指南的链接

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