我想制作一个搜索功能,查询同一类中的两个不同键。我可以使用哪种正则表达式来返回最准确的值。示例:
- (void)searchTableList {
[self.results removeAllObjects];
PFQuery *query = [PFQuery queryWithClassName:@"TC"];
CLLocationCoordinate2D coordinate = [self.delegate.location coordinate];
PFGeoPoint *geoPoint = [PFGeoPoint geoPointWithLatitude:coordinate.latitude
longitude:coordinate.longitude];
PFQuery *query1 = [PFQuery queryWithClassName:@"TC"];
[query1 setLimit:1000];
[query1 whereKey:@"location"
nearGeoPoint:geoPoint
withinKilometers:5];
[query1 whereKey:@"courses" matchesRegex:[NSString stringWithFormat:@"%@",[self.searchBar.text lowercaseString]]];
[query1 whereKey:@"owner" notEqualTo:[PFUser currentUser].username];
[query1 findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
for( PFObject * object in objects)
{
[self.results addObject:object];
}
[query setLimit:1000];
[query whereKey:@"location"
nearGeoPoint:geoPoint
withinKilometers:5];
[query whereKey:@"owner" matchesRegex:[NSString stringWithFormat:@"%@",[self.searchBar.text lowercaseString]]];
[query whereKey:@"owner" notEqualTo:[PFUser currentUser].username];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
for( PFObject * object in objects)
{
[self.results addObject:object];
}
[self.tableView reloadData];
}];
}];
}
我如何处理这两个查询并以最准确的信息优先的方式对它们进行排序。
最佳答案
如果要查找与多个查询之一匹配的对象,可以使用orQueryWithSubqueries: 方法。例如,如果你想找到有很多胜利或很少胜利的玩家,你可以这样做:
PFQuery *lotsOfWins = [PFQuery queryWithClassName:@"Player"];
[lotsOfWins whereKey:@"wins" greaterThan:@150];
PFQuery *fewWins = [PFQuery queryWithClassName:@"Player"];
[fewWins whereKey:@"wins" lessThan:@5];
PFQuery *query = [PFQuery orQueryWithSubqueries:@[fewWins,lotsOfWins]];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) {
// results contains players with lots of wins or only a few wins.
}];
关于ios - 搜索功能解析 IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21165055/