【问题标题】:Parse.com - Getting pointer data contained in [PFUser currentUser]Parse.com - 获取 [PFUser currentUser] 中包含的指针数据
【发布时间】:2016-05-24 18:49:38
【问题描述】:

我正在使用 Parse.com iOS SDK,但我不知道需要调用什么方法来确保 PFUser currentUser 包含其中包含的每个指针的数据。这可能很简单,但是,作为这个平台的初学者,我找不到解决方案。

为了澄清,我试图在下面获取用户名项目。看起来它总是为空,即使我在继续之前调用了[[PFUser currentUser] fetchIfNeeded]

[[[PFUser currentUser] objectForKey:@"partner"] objectForKey:@"username"];

谢谢,

安德烈亚

【问题讨论】:

    标签: objective-c parse-platform


    【解决方案1】:

    您可以使用includeKey:在单个查询中完成此操作

    PFQuery *query = [PFUser query];
    [query includeKey:@"partner"];
    [query includeKey:@"anotherPointerColumnName"];
    [query getObjectInBackgroundWithId:[[PFUser currentUser] objectId]
                                 block:^(PFObject *populatedUser, NSError *error) {
        PFObject *partner = populatedUser[@"partner"];
        PFObject *another = populatedUser[@"anotherPointerColumnName"];
    }];
    

    你也可以使用更深的层次,所以如果partner 包含一个指针,你需要调用deeperPointerColumnName

    [query includeKey:@"partner.deeperPointerColumnName"];
    

    然后在你的完成块中你得到伙伴后就可以阅读了:

    PFObject *partner = populatedUser[@"partner"];
    PFObject *deeper = partner[@"deeperPointerColumnName"];
    

    【讨论】:

    • 是的,includeKey: 是唯一的,这使得查询包括在提供的键处存储有引用的子 PFObjects
    • 如果不是partner 而是partners(指针数组)怎么办?
    • 另一个问题是,它不会在PFUser.currentUser() 中持续存在。
    【解决方案2】:

    好吧,我自己找到了解决方法。看起来解决方案是在继续之前调用指针上的fetch 方法:

    [[[PFUser currentUser] objectForKey:@"partner"] fetch];
    

    如果有更清洁、更快捷的方法(例如自动),我将非常感谢任何建议。

    【讨论】:

      猜你喜欢
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多