4

我有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?我做错了什么?

4

3 回答 3

1

我为此问题创建了一个错误报告,即

上报给工程团队进一步调查

所以看起来这是一个错误

同时,我已将所有 my 转换PFRelations为指向相关PFObjects 的指针数组。不像PFRelation,但可以很好地与本地数据存储配合使用。

更新:解析解决了Parse SDK v.1.7.3 中的问题

于 2015-03-20T00:41:40.230 回答
0

这是一个解析错误。它也可以用 Android SDK 复制。我不确定在 iOS 上,但在 Android 上我找到了一种让它工作的方法。

您需要有一个与which has sPointer相关的“相关”类。ParseObjectRelation

在你的情况下,你有一个PFUserwhich 有几个PFRelations。如果PFPointerPFUser在“相关”类中添加一个,则从本地数据存储区查询就可以了。

或者对于我上面的链接中的情况 - 如果Comment类有一个Pointer类,那么Post一切都会正常工作。

于 2015-04-06T14:56:36.673 回答
0

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

您可以通过对每个固定对象的关系执行单独的查询来使其工作(也许有一种方法可以一次对所有对象执行此操作?)。然后pin关系查询的结果。

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

于 2015-06-28T09:41:59.730 回答