PFUser指针列数组,为currentUser获取对象

时间:2015-01-21 17:10:20

标签: arrays pointers parse-platform

我的PFUser子类包含一个列,它是一个指针数组。显示[PFUser currentUser]配置文件页面时,不包括数组对象并调用

[[PFUser currentUser fetchIfNeededInBackground] 

也不会获取指针对象。

如果列是单指针,我可以调用

[currentUser[@"pointerColumn"] fetchIfNeedInBackground]

但方法的参数是PFObject而不是指针数组。

我可以为数组中的每个对象调用fetchIfNeededInBackgroundWithBlock,但是这会对PFUser类中的单个列产生很多请求。

for (PFObject * obj in currentUserArrayOfPointers) {
  [obj fetchIfNeededInBackgroundWithBlock:^(PFObject *object, NSError *error){
    [self.tableView reloadData];
  }];
}

有没有更好的方法来获取[PFUser currentUser]的指针数列?

(并保留“fetchIfNeeded”的行为,这样可以避免每次获取对象时都进行新查询。)

1 个答案:

答案 0 :(得分:0)

您可以做的是获取currentUserArrayOfPointers中的所有objectId,然后使用此参数进行解析查询:

NSMutableArray *userObjectIds = [[NSMutableArray alloc] init];
for (PFObject * obj in currentUserArrayOfPointers) {
    [userObjectIds add:object.objectId];
}

PFQuery *query = [PFQuery queryWithClassName:@"SomeClass"];
[query whereKey:@"objectId" containedIn:userObjectIds];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error {
    ...
}];

通过这种方式,您可以通过一个查询获得所有用户。