我正在使用Parse.com iOS SDK,我不知道需要调用哪种方法来确保PFUser currentUser包含其中包含的每个指针的数据。它可能非常简单,但作为这个平台的初学者,我找不到解决方案。
为了澄清,我正在尝试获取以下的用户名项。看起来它总是为null,即使我在继续之前调用[[PFUser currentUser] fetchIfNeeded]
:
[[[PFUser currentUser] objectForKey:@"partner"] objectForKey:@"username"];
谢谢,
安德烈
答案 0 :(得分:10)
您可以使用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"];
答案 1 :(得分:0)
好吧,我自己找到了解决方法。看起来解决方案是在继续之前调用指针上的fetch
方法:
[[[PFUser currentUser] objectForKey:@"partner"] fetch];
如果有一种更清洁,更快捷的方式(例如自动),我真的很感激任何建议。