RKPaginator Params

как я могу использовать «RKPaginator» с пользовательским параметром страницы? Мой API не предоставляет параметр «страница», он использует шаблон, подобный этому для разбивки на страницы:

"http://my.domain.com/api/lists/?limit=5&offset=10"

«offset» - это параметр для следующей страницы.

Форма возврата JSON моего API выглядит так:

"meta": {
    "next": "/api/lists/?limit=5&offset=15",
    "total_count": 22,
    "previous": "/api/lists/?limit=5&offset=5",
    "limit": 5,
    "offset": 10
},

Или было бы проще настроить tastypie для обработки таких запросов? " http://my.domain.com/api/lists/?page=1 » Какие методы я должен переопределить?

Большое спасибо.

3

1 ответы

Переопределите метод RKPaginator :: loadPage с категорией object-c и рассчитайте смещение от номера страницы и ограничения, как показано в следующих строках кода:

#import "RKPaginator+Tastypie.h"
#import 

@implementation RKPaginator (Tastypie)

- (void)TastypieLoadPage:(NSUInteger)pageNumber
{
    [self TastypieLoadPage:(pageNumber-1) * self.perPage];
}

+ (void)load {
    method_exchangeImplementations(class_getInstanceMethod(self, @selector(loadPage:)), class_getInstanceMethod(self, @selector(TastypieLoadPage:)));
}

@end

И здесь идет строительство объекта RKPaginator:

RKPaginator *paginator = [[RKObjectManager sharedManager] paginatorWithPathPattern:@"yourResource/?limit=:perPage&offset=:currentPage"];
4
добавлено
Как вы решаете проблему currentPage ?
добавлено автор saiday, источник