我有一个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个寄存器已经输入了?
任何人都可以帮助我吗?
答案 0 :(得分:1)
(回答这里,因为我没有足够的声誉来发表评论。)
limit=1000
似乎不起作用:也许"其中"子句(即约束updatedAt
值> = 2014-09-23T02:13:01.999Z的项目)将结果限制为小于1000?limit=100&skip=100
以查看第2页。答案 1 :(得分:0)
我不确定,但我认为this是您正在寻找的。关于如何从Parse中检索所有对象而不是最大限制(即1000)的一个很好的解决方案。