Вопрос

Я пытаюсь разобрать некоторые объекты из моей базы данных.Я использую Parse.com как веб-сервис. Следующий код возвращает мне какой-то объект на основе 4 запросов, 2 из них являются соединением.

Переменная «Настройка» должна быть равна показателям или «6» Переменная «MessageSex» должна быть равна «сексам» или «2» Переменная «isavaiabiable» должна быть равна да Переменная «Автор» должна отличаться от пользователя. УЗвыeName

в основном я пытаюсь реализовать запрос с 2 или условиями и 2 и условиями.

Следующий код дает мне неправильный результат, отсутствие исключения или такого, просто неправильный вид объекта.Я уверен, что это проблема синтаксиса, но я не могу выяснить, как правильно написать это .. Если я просто использую 1 сложный запрос, а затем добавляю 2 и запросы, чтобы я получаю правильный результат, но я пропускаю 1 фильтр..

PFQuery *queryAge1 = [PFQuery queryWithClassName:@"MeetingObject"];
[queryAge1 whereKey:@"meetingAge" equalTo:indexAge ];
PFQuery *queryAge2 = [PFQuery queryWithClassName:@"MeetingObject"];
[queryAge2 whereKey:@"meetingAge" equalTo:@"6"];
PFQuery *queryCompound = [PFQuery orQueryWithSubqueries:@[queryAge1,queryAge2]];

PFQuery *querySex1 = [PFQuery queryWithClassName:@"MeetingObject"];
[querySex1 whereKey:@"meetingSex" equalTo:user[@"sex"]];
PFQuery *querySex2 = [PFQuery queryWithClassName:@"MeetingObject"];
[querySex2 whereKey:@"meetingSex" equalTo:@"2"];
queryCompound = [PFQuery orQueryWithSubqueries:@[querySex1,querySex2]];

[queryCompound whereKey:@"isAvaiable" equalTo:[NSNumber numberWithBool:YES]];
[queryCompound whereKey:@"author" notEqualTo:user.username];


[queryCompound findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
}
.

Это было полезно?

Решение

В вашей строке ... queryCompound = [PFQuery orQueryWithSubqueries:@[querySex1,querySex2]]; Вы создаете совершенно новый запрос, игнорируя все возрастные вещи.

Редактировать

Вы преодолеете это.

Вы можете сделать это таким образом ...

PFQuery *query = [PFQuery queryWithClassName:@"MeetingObject"];
[query whereKey:@"meetingAge" containedIn:@[@"6", indexAge]];
[query whereKey:@"meetingSex" containedIn:@[@"2", user[@"sex"]]];
[query whereKey:@"isAvaiable" equalTo:[NSNumber numberWithBool:YES]];
[query whereKey:@"author" notEqualTo:user.username];

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
}
.

Это поймает все варианты, которые вы ищете.

Также, как быстрая нота.Выберите имена вариантов переменной, чтобы сделать их более читаемыми.Если все они начнутся со словом генеракодицетагкод, трудно их отличить.Также сделать их описательными.Генеракодицетагкод и генеракодицетагкод затрудняет понимание того, что они делают.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top