PFQuery只返回100个具有限制的对象(iOS)

时间:2016-01-05 09:14:13

标签: ios objective-c parse-platform

我创建了一个PFQuery来获取“Albums”类中的所有对象(512个对象)。

当我创建PFQuery并在其上调用findObjectsInBackgroundWithBlock方法时,它只返回100个对象而不是512,尽管我添加了行

query.limit=1000;

我的代码:

PFQuery *query=[PFQuery queryWithClassName:@"Albums"];
query.limit=1000;

[query findObjectsInBackgroundWithBlock:^(NSArray * _Nullable objects, NSError * _Nullable error) {
    if (error) {
        NSLog(@"Error: %@",[error description]);
    }
    NSLog(@"%lu",objects.count); //print - 100
    self.albums=objects;
    NSLog(@"%ld",(long)self.supermarkets.count); //print - 100
}];

非常感谢!!!

1 个答案:

答案 0 :(得分:1)

根据Parse doc,从Parse获取对象似乎有一些限制。请注意,默认限制100和最大限制1000也适用于内部查询,因此对于大型数据集,您可能需要仔细构造查询以获得所需的行为。您必须反复查询,直到达到总计数。

或者您可以尝试的一件事是为您的查询使用缓存策略,如下所示:

PFQuery *query=[PFQuery queryWithClassName:@"Albums"];
query.limit=1000;
// use cachepolicy
query.cachePolicy = kPFCachePolicyNetworkOnly;

[query findObjectsInBackgroundWithBlock:^(NSArray * _Nullable objects, NSError * _Nullable error) {
    if (error) {
        NSLog(@"Error: %@",[error description]);
    }
    NSLog(@"%lu",objects.count); //print - 100
    self.albums=objects;
    NSLog(@"%ld",(long)self.supermarkets.count); //print - 100
}];