我有一个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
?我做错了什么?
答案 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
班级有Pointer
到Post
班级,一切都会正常。
答案 2 :(得分:0)
在解析1.7.5中有相同的问题(发行说明提到他们修复了这个错误,但仍然不适合我)
你可以使它为每个固定对象的关系执行单独的查询(可能有一种方法可以同时对所有对象进行处理吗?)。然后将关系查询的结果固定。
之后从本地数据存储区查询开始正常工作。