如何检索用户

时间:2015-06-10 13:32:27

标签: ios objective-c parse-platform

用户我在我的应用程序中集成了Parse,此时我已启动并运行登录功能。现在,我试图了解/了解如何在当前登录用户独有的另一个类中创建和连接对象,以及如何检索这些对象。

所以我需要一些帮助来解决这个问题。我发现this question并且它与我想要达到的目标相同但是我无法弄清楚"连接"可以这么说,如果我需要向我的User类和/或我要从中检索的Object类添加参数。

为了简单起见,我们说我已经使用已经为Parse User类创建的唯一objectId登录了我的User。然后当我登录时,我这样做:

PFObject *list = [PFObject objectWithClassName:@"Lists"];
    list[@"name"] = @"My list";

    [list saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (succeeded) {
            // The object has been saved.
            NSLog(@"Success");
        } else {
            // There was a problem, check error.description
            NSLog(@"Fail");
        }
    }];

列表已创建并存储在我的应用程序Parse帐户的List类中。现在,如果我说我退出然后再与创建该列表的用户一起,我该如何检索该用户的唯一列表?

在问题(之前链接)中,建议并标记为有效:

PFQuery *innerQuery = [PFQuery queryWithClassName:@"User"];
[innerQuery whereKey:@"userType" equalTo:@"X"];  // fix with your real user type

PFQuery *query = [PFQuery queryWithClassName:@"Post"];
[query whereKey:@"user" matchesQuery:innerQuery];
[query findObjectsInBackgroundWithBlock:^(NSArray *posts, NSError *error) {
     // posts are posts where post.user.userType == X
}];

在此示例中,@"userType"@"X"@"user"是什么?有人可以解释,以便我得到"流动"或者可以说是查询之间的联系。所以我可以实现我之后的功能。

1 个答案:

答案 0 :(得分:2)

在您查询Parse并检索用户信息之前,您必须存储一些。这是通过创建一个附加了一些属性的PFObject来完成的。保存后,您可以检索此信息。下面是一个创建User对象的示例,该对象充当Favorite对象的父对象。

PFObject *user = [PFObject objectWithClassName:@"User"];
[user saveEventually];

PFObject *favorite = [PFObject objectWithClassName:@"Favorites"];
favorite[@"numberOfFavorites"] = @(10);
favorite.ACL = [PFACL ACLWithUser:[PFUser currentUser]];
favorite[@"parent"] = user;

[favorite saveEventually];

保存后,您可以再次为给定用户检索对象:

PFQuery *query = [PFQuery queryWithClassName:@"User"];
PFQuery *innerQuery = [PFQuery queryWithClassName:@"Favorites"];
[innerQuery whereKey:@"parent" matchesQuery:query];

[[[innerQuery findObjectsInBackground] continueWithBlock:^id(BFTask *task) {
    if (task.error){
        return nil;
    }
 }];

Parse非常good documentation and examples可以帮助你。希望这可以帮助。 Ť