在iOS中处理Parse中的一对多关系

时间:2014-11-07 17:44:47

标签: ios parse-platform pfrelation

我有这种情况:

一篇文章可能有很多评论。所以我在Parse.com中创建了一个Post类和一个Comment类。以下是定义或类及其数据:

一个帖子:

enter image description here

该帖子有两条评论:

enter image description here

我想使用特定作者的第一条评论来检索帖子。这是我的代码:

PFQuery *query = [PFQuery queryWithClassName:@"Post"];
[query orderByAscending:@"createdAt"];

[query findObjectsInBackgroundWithBlock:^(NSArray *posts, NSError *error) {

    for (PFObject* obj in posts) {

        PFRelation* comments = [obj objectForKey:@"comment"];
        PFQuery* theQuery = [comments query];
        [theQuery whereKey:@"author" equalTo:@"John"];
        [theQuery getFirstObjectInBackgroundWithBlock:^(PFObject *comment, NSError *error) {

            NSLog(@"Post title=%@,body=%@", [obj objectForKey:@"title" ],[obj objectForKey:@"body"]);
            NSLog(@"Comment content=%@",[comment objectForKey:@"content"]);
        }];
    }
}];

虽然它有效,但我认为它并不高效。查询完成时很难判断,因为有两个嵌套的异步调用。

有没有人有更好的解决方案?感谢。

修改

我认为它效率不高的原因是因为存在嵌套查询。但我不知道如何使用Relation获得我想要的东西。也许我不应该使用关系?相反,我应该将Post的ObjectId分配给Comment类? (但这种方法并不像输入数据中的关系那么容易)

1 个答案:

答案 0 :(得分:1)

建议对于多对多的关系类型,对于一对多"指针"和"阵列"推荐