我的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”的行为,这样可以避免每次获取对象时都进行新查询。)
答案 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 {
...
}];
通过这种方式,您可以通过一个查询获得所有用户。