Ios 为什么PFRelation不支持fromLocalDataStore查询?
我有一个Ios 为什么PFRelation不支持fromLocalDataStore查询?,ios,parse-platform,pfrelation,Ios,Parse Platform,Pfrelation,我有一个PFUser对象,其中有几个PFRelation指向其他对象。当我运行以下代码时: PFRelation *relation = [[PFUser currentUser] relationForKey:@"Relation"]; PFQuery *query = [relation query]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){ NSLog(@"%@", o
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
查询不支持本地数据存储中的
?我做错了什么?我为这个问题创建了一个
上报给工程团队进行进一步调查
所以它看起来像一只虫子
同时,我将所有的PFRelations
转换为指向相关PFObject
s的指针数组。不像PFRelation那么花哨,但可以很好地用于本地数据存储
更新:parse SDK v.1.7.3中的解析这是一个解析错误。也可以是。在iOS上我不确定,但在安卓上我找到了一种方法让它工作 您需要在具有
关系的ParseObject
的“相关”类中有一个指针
在您的例子中,您有一个PFUser
,它有几个PFRelation
s。如果将PFPointer
添加到“相关”类中的PFUser
,则可以从本地数据存储中进行查询
或者对于我上面链接中的例子-如果Comment
类将有一个指向Post
类的指针,那么一切都会正常工作。在parse 1.7.5中也有同样的问题(发行说明提到他们修复了这个bug,但对我来说仍然不起作用)
您可以对每个固定对象的关系执行单独的查询(也许有一种方法可以同时对所有对象执行此操作?)。然后锁定关系查询的结果
在此之后,从本地数据存储查询开始正常工作。关系中的对象是否设置了ACL?LDS不支持ACL,但是,在SDK的v1.6.4中,您可以告诉LDS查询忽略ACL。我目前不确定SDK是否自动从关系中锁定对象,除非您为获取对象而执行的查询包含一个include:@“relationField”,否则它们也可能没有完全从服务器中获取。您是刚刚固定了父对象还是将提取的对象与关系分开?我将分别固定相关对象如果有人感兴趣,我已将所有PFRelation对象转换为指向相关PFObject的指针数组。