3

如何使用带有自定义“页面参数”的“RKPaginator”?我的 API 不提供“页面”参数,它使用这样的模式进行分页:

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

“offset”是下一页的参数。

我的 API 的 JSON 返回表单如下所示:

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

或者定制tastepie来处理这样的请求会更容易吗?" http://my.domain.com/api/lists/?page=1 " 我必须重写哪些方法?

非常感谢。

4

1 回答 1

4

使用objective-c 类别覆盖RKPaginator::loadPage 方法,并计算与页码和限制的偏移量,如以下代码行所示:

#import "RKPaginator+Tastypie.h"
#import <objc/runtime.h>

@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"];
于 2013-02-09T16:40:39.367 回答