Ограничение запроса PFUser

#parse-platform

#платформа синтаксического анализа

Вопрос:

Это мой текущий запрос:

 [PFQuery *userQuery = [PFUser query];
[userQuery whereKey:@"phone" containedIn:phones];
[userQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

    if (!error) {
        // The find succeeded.

        self.contactsWithApp = objects;




        [self.tableView reloadData];



    } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}];
 

Я ищу пользователей по массиву, состоящему из строк телефонных номеров. Ключ ‘phone’ в моем классе User содержит строку номера телефона для каждого пользователя. Почему это не работает?

Комментарии:

1. Вы уверены, что ваш телефонный ключ в Parse имеет строковый тип? Дважды проверьте в своем браузере данных.

2. Кроме того, вызываете ли вы один из методов findObjects для фактического выполнения запроса? Нам нужны дополнительные сведения и, пожалуйста, включите некоторый код.

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

4. Как насчет моего 2-го комментария?

5. просто добавил немного кода, я использую findObjectsInBackgroundWithBlock

Ответ №1:

Попробуйте использовать это вместо этого. Предполагается, что класс, который вы запрашиваете в Parse, называется User .

Замените вашу строку:

 PFQuery *userQuery = [PFUser query];
 

С помощью этого:

 PFQuery *userQuery = [PFQuery queryWithClassName:@"_User"];
 

Окончательный код:

 PFQuery *userQuery = [PFQuery queryWithClassName:@"_User"];
[userQuery whereKey:@"phone" containedIn:phones];
[userQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

if (!error) {
    // The find succeeded.

    self.contactsWithApp = objects;

    [self.tableView reloadData];

} else {
    // Log details of the failure
    NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
 

Комментарии:

1. хм, все тот же результат

2. Каков результат? Действительно ли ошибка отображается в консоли?

3. ошибки нет, в NSArray просто нет объектов

4. Если ошибки нет, значит, ни одна из строк номера телефона в вашем массиве не найдена в ключе синтаксического анализа «телефон». Не могли бы вы отредактировать свой исходный пост и показать мне, как выглядит одна из строк телефонных номеров вашего массива? В частности, тот, который находится в массиве, который, как вы знаете, также находится в синтаксическом анализе. Кроме того, скопируйте / вставьте, как выглядит это число в parse.

5. @user3344977 У меня та же проблема, с equalTo: я могу получить PFUser, но с containdIn:friendIDs — нет пользователя

Ответ №2:

Я почти уверен, что этот вопрос больше не актуален. Но я столкнулся с той же проблемой и хочу поделиться решением. Скорее всего, вы получили ответ в формате JSON, а ваш «телефон» в phones — это тип NSNumber. Для запроса из синтаксического анализа с containedIn: помощью массива должны быть объекты типа NSString.