Parse.com всегда возвращает максимум 100 записей, то же самое, что "limit = 1000",

62
4

У меня есть приложение 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).


Хуже всего то, что в моем коде у меня есть переменная "limit" в "запросе", которая должна работать, но не работает для меня.


Мне нужна ваша помощь, пожалуйста...


Код:


- (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 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;
}​


Распечатка переменной "запрос" после этого метода такова:


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 других регистров?


Кто-нибудь может мне помочь?

спросил(а) 2014-10-16T21:29:00+04:00 5 лет, 1 месяц назад
2
Решение
44

(Ответ здесь, поскольку у меня недостаточно репутации для комментариев.)

    Для limit=1000, похоже, не работает: возможно, предложение "where" (т.е. ограничение на элементы с updatedAt значением >= 2014-09-23T02: 13: 01.999Z) ограничивает результаты до менее 1000?
    (To Ian point) Существует параметр "skip", который сообщает API, сколько предметов проскакивает вперед, для разбивки на страницы. т.е. limit=100&skip=100, чтобы увидеть страницу 2.

ответил(а) 2014-10-17T02:42:00+04:00 5 лет, 1 месяц назад
Еще 1 ответ
31

Я не уверен, но я думаю, что этот - это то, что вы ищете. Отличное решение о том, как извлечь все объекты из Parse вместо максимального предела, то есть 1000.

ответил(а) 2015-09-03T18:23:00+03:00 4 года, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема