我的应用程序使用Parse作为后端,显示附近餐馆的菜肴。我已经设置了Parse,因此我有两个课程,Dish和Restaurant。每个Dish都有一个名为restaurant的属性,它是指向餐厅类objectId
的指针。每个餐厅都有一个名为location的地产,这是一个地理位置。我的目标是运行一个查询,返回一系列菜肴,按其距离排序。
我不能把这些碎片放在一起。我想我可能需要做两个查询,但我不确定这是怎么回事。这是我到目前为止的代码:
PFGeoPoint *userGeoPoint = [PFGeoPoint geoPointWithLatitude:self.currentLocationLatitude longitude:self.currentLocationLongitude];
PFQuery *query = [PFQuery queryWithClassName:@"Dish"];
[query whereKey:@"restaurant.location" nearGeoPoint:userGeoPoint];
[query findObjectsInBackgroundWithBlock:^(NSArray *dishes, NSError *error){
if (error) {
// The query failed
NSLog(@"error in geo query!");
} else {
// The query is successful
NSLog(@"Here are the dishes from my query:");
NSLog(@"%@", dishes);
}
}];
答案 0 :(得分:0)
我认为你是正确的,你需要两个查询,因为你不能whereKey:@"restaurant.location"
。
我首先使用whereKey:@"location" nearGeoPoint:userGeoPoint
查询Restaurant类,获取一系列附近的Restaurant PFObjects(例如myRestaurants
),然后对Dish类使用第二个查询:query whereKey:@"restaurant" containedIn:myRestaurants
得到那些餐馆的菜肴。