为什么PFRelation不支持fromLocalDataStore查询?

时间:2015-03-08 18:49:42

标签: ios parse-platform pfrelation

我有一个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 个答案:

答案 0 :(得分:1)

我为此问题创建了bug report

  

升级到工程团队进一步调查

所以它看起来像是一个错误

与此同时,我已将所有PFRelations转换为指向相关PFObject的指针数组。不像PFRelation那样华丽,但可以与本地数据存储一起使用。

更新:在Parse SDK v.1.7.3中解析solved the issue

答案 1 :(得分:0)

这是一个Parse bug。它也可以是reproduced with Android SDK。我在iOS上不确定,但在Android上我找到了一种如何让它发挥作用的方法。

您需要{&#34}相关的Pointer"具有ParseObject s。{/ p>的Relation的类

在您的情况下,您的PFUser有几个PFRelation个。如果您向PFPointer添加PFUser"相关"类,从本地数据存储区查询可以正常工作。

或者对于我上面的链接中的情况 - 如果Comment班级有PointerPost班级,一切都会正常。

答案 2 :(得分:0)

在解析1.7.5中有相同的问题(发行说明提到他们修复了这个错误,但仍然不适合我)

你可以使它为每个固定对象的关系执行单独的查询(可能有一种方法可以同时对所有对象进行处理吗?)。然后将关系查询的结果固定。

之后从本地数据存储区查询开始正常工作。