2014-11-02 4 views
1

У меня есть два класса User и Post. Класс User имеет поле userType, и я хочу получить все сообщения из заданного userType, позвонив им в группу x. В классе Post у меня есть указатель на класс User.IOS Parse Как мне получить объекты из запроса на основе двух классов?

Я пытался сделать что-то подобное, первым получить все пользовательские идентификаторы для типа пользователя Я хочу:

PFQuery *queryUser = [PFQuery queryWithClassName:kFTUserClassKey]; 
[queryUser whereKey:kFTUserTypeKey equalTo:kFTUserTypeX]; 
[queryUser whereKey:kFTUserLocationKey nearGeoPoint:nearGeoPoint withinMiles:miles]; 
[queryUser findObjectsInBackgroundWithBlock:^(NSArray *usersTypeX, NSError *error) { 
      if (!error) { 
       NSMutableArray *objectIds = [[NSMutableArray alloc] init]; 

       // Add ambassador ids into query 
       for (PFObject *userX in usersTypeX) { 
        [objectIds addObject:[PFObject objectWithoutDataWithClassName:kFTUserClassName objectId: userX.objectId]]; 
       } 
      } 
}]; 

А потом я хотел запросить на основе этих ObjectIds, но я не уверен, как запрос на этом массиве или если это даже правильный способ сделать это. Как это может быть сделано?

ответ

3

Анализировать обеспечивает matchesQuery метод по запросу, так что ...

PFQuery *innerQuery = [PFQuery queryWithClassName:@"User"]; 
[innerQuery whereKey:@"userType" equalTo:@"X"]; // fix with your real user type 
PFQuery *query = [PFQuery queryWithClassName:@"Post"]; 
[query whereKey:@"user" matchesQuery:innerQuery]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *posts, NSError *error) { 
    // posts are posts where post.user.userType == X 
}];