2016-10-07 1 views
1

В настоящее время у меня есть запрос Parse в объекте c, который использует один класс (Фото) для извлечения данных.Objective C Результаты запроса парсера с использованием двух классов, где равно

PFQuery *photosFromUsersQuery = [PFQuery queryWithClassName:@"photo"]; 
[photosFromUsersQuery whereKeyDoesNotExist:@"type"]; 
[photosFromUsersQuery whereKeyExists:kESPhotoPictureKey]; 
[photosFromUsersQuery whereKey:@"createdAt" greaterThanOrEqualTo:sevenDaysAgo]; 

PFQuery *videosFromUserQuery = [PFQuery queryWithClassName:self.parseClassName]; 
[videosFromUserQuery whereKeyExists:@"type"]; 
[videosFromUserQuery whereKey:@"createdAt" greaterThanOrEqualTo:sevenDaysAgo]; 

PFQuery *query = [PFQuery orQueryWithSubqueries:[NSArray arrayWithObjects:photosFromUsersQuery, videosFromUserQuery, nil]]; 

[query includeKey:kESPhotoUserKey]; 
[query orderByDescending:@"createdAt"]; 

Теперь мне нужно использовать второй класс (пользователь), который является указателем в обоих классах.
Я хочу отфильтровать данные из запроса выше, чтобы отображать только данные, в которых пользователь имеет общедоступный профиль.
В классе пользователя у меня есть столбец с именем privacy, который либо содержит значение Public, либо Private.

Я пробовал много подходов, но никто не работал.
Пожалуйста, помогите мне выполнить эту задачу.

Спасибо

ответ

0

Я думаю, что вы ищете вариант matchesQuery. Я не делаю многого, но он должен выглядеть примерно так.

PFQuery *photosFromUsersQuery = [PFQuery queryWithClassName:@"photo"]; 
[photosFromUsersQuery whereKeyDoesNotExist:@"type"]; 
[photosFromUsersQuery whereKeyExists:kESPhotoPictureKey]; 
[photosFromUsersQuery whereKey:@"createdAt" greaterThanOrEqualTo:sevenDaysAgo]; 

PFQuery *videosFromUserQuery = [PFQuery queryWithClassName:self.parseClassName]; 
[videosFromUserQuery whereKeyExists:@"type"]; 
[videosFromUserQuery whereKey:@"createdAt" greaterThanOrEqualTo:sevenDaysAgo]; 

PFQuery *query = [PFQuery orQueryWithSubqueries:[NSArray arrayWithObjects:photosFromUsersQuery, videosFromUserQuery, nil]]; 

PFQuery *userQuery = [PFQuery queryWithClassName:@"User"] 
[userQuery whereKey:@"privacy" equalTo:@"Public"] 
[query whereKey:@kESPhotoUserKey matchesQuery: userQuery] 
[query orderByDescending:@"createdAt"]; 
+0

Это вернуло нулевые результаты. – user6849803