Parse.com总是返回最多100条记录,同样具有“limit = 1000”

时间:2014-10-16 18:29:57

标签: ios objective-c iphone parse-platform request

我有一个iOS应用程序,可以从PARSE.COM接收数据。 如何对'parse.com'一无所知,我使用了教程“http://www.raywenderlich.com/15916/how-to-synchronize-core-data-with-a-web-service-part-1”。

仅从服务器到设备(iOS)进行同步,并且一旦将对象添加到设备,则不应再次插入。

原来我在一个类中有131个对象而在另一个类中有145个,但是Parse.com总是返回前100个项目,即使是那些已经在设备中的项目(iOS)。

最糟糕的是,在我的代码中,我在“请求”中有一个变量“限制”应该有效,但对我不起作用。

我需要你的帮助,请...

代码:

- (NSMutableURLRequest *)GETRequestForAllRecordsOfClass:(NSString *)className updatedAfterDate:(NSDate *)updatedDate
{
    NSMutableURLRequest *request = nil;
    NSDictionary *paramters = nil;
    if (updatedDate) {
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.'999Z'"];
        [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

        NSString *jsonString = [NSString 
                                stringWithFormat:@"{\"updatedAt\":{\"$gte\":{\"__type\":\"Date\",\"iso\":\"%@\"}}}", 
                                [dateFormatter stringFromDate:updatedDate]];

        //That's line of 'paramters' is from original tutorial Raywenderlich
       // paramters = [NSDictionary dictionaryWithObject:jsonString forKey:@"where"];

        //This line was add for the autors of tutorial in a comment from your blog, and he say that has work, but not for me =(
        paramters = @{@"where" : jsonString, @"limit" : @(1000)};

    }
    request = [self GETRequestForClass:className parameters:paramters];
    return request;
}​

在此方法之后打印变量“request”是这样的:

URL: https://api.parse.com/1/classes/Substancia?where=%7B%22updatedAt%22%3A%7B%22%24gte%22%3A%7B%22__type%22%3A%22Date%22%2C%22iso%22%3A%222014-09-23T02%3A13%3A01.999Z%22%7D%7D%7D&limit=1000

为什么变量“LIMIT = 1000”,parse.com每个都返回100个项目? 甚至那会返回100个项目,为什么在下一次他执行“请求”时他没有赶上下一个100,因为之前的其他100个寄存器已经输入了?

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

(回答这里,因为我没有足够的声誉来发表评论。)

  • 对于limit=1000似乎不起作用:也许"其中"子句(即约束updatedAt值> = 2014-09-23T02:13:01.999Z的项目)将结果限制为小于1000?
  • (对伊恩的观点)有一个'跳过'参数,告诉API要跳过多少项,以进行分页。即limit=100&skip=100以查看第2页。

答案 1 :(得分:0)

我不确定,但我认为this是您正在寻找的。关于如何从Parse中检索所有对象而不是最大限制(即1000)的一个很好的解决方案。