Почему 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
у которого есть Relation
s.
В вашем случае у вас есть PFUser
который имеет несколько PFRelation
s. Если вы добавите PFPointer
на ваш PFUser
в "связанных" классах запрос из локального хранилища данных будет работать нормально.
Или для случая из моей ссылки выше - Если Comment
класс будет иметь Pointer
к Post
класс все будет работать нормально.