Почему PFRelation не поддерживает запросы fromLocalDataStore?

У меня есть PFUser объект с несколькими PFRelation указывая на другие объекты. Когда я запускаю следующий код:

PFRelation *relation = [[PFUser currentUser] relationForKey:@"Relation"];
PFQuery *query = [relation query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
    NSLog(@"%@", objects);
}];

это работает отлично. Однако, когда я хочу сделать то же самое из локального хранилища данных:

PFRelation *relation = [[PFUser currentUser] relationForKey:@"Relation"];
PFQuery *query = [[relation query] fromLocalDataStore]; // !!!
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
    NSLog(@"%@", objects);
}];

он ничего не возвращает, несмотря на то, что я прикрепил как пользователя, так и связанные объекты [myObject pinInBackground],

Зачем PFRelation запросы не поддерживает fromLocalDataStore? Что я делаю не так?

3 ответа

Решение

Я создал отчет об ошибке для этой проблемы, который

перешел в инженерную группу для дальнейшего расследования

Похоже, это ошибка

В то же время, я преобразовал все свои PFRelations к массивам указателей на связанные PFObject s. Не так красиво, как PFRelation, но отлично работает с локальным хранилищем данных.

Обновление: parse решил проблему в Parse SDK v.1.7.3

Возникла та же проблема в парсе 1.7.5 (в примечаниях к выпуску упоминается, что они исправили эту ошибку, но все еще не работают для меня)

Вы можете заставить его работать с выполнением отдельного запроса для отношения, которое у вас есть для каждого объекта закрепления (может быть, есть способ сделать это со всеми объектами одновременно?). А затем закрепите результаты запроса отношения.

После этого запросы из локального хранилища данных начинают работать нормально.

Это ошибка разбора. Это может также быть воспроизведено с Android SDK. Я не уверен, что на iOS, но на Android я нашел способ, как заставить его работать.

Вам нужно иметь Pointer в "родственных" классах с ParseObject у которого есть Relations.

В вашем случае у вас есть PFUser который имеет несколько PFRelations. Если вы добавите PFPointer на ваш PFUser в "связанных" классах запрос из локального хранилища данных будет работать нормально.

Или для случая из моей ссылки выше - Если Comment класс будет иметь Pointer к Post класс все будет работать нормально.

Другие вопросы по тегам