あなたが言うように、あなたは通常RKObjectPaginatorを使うことができます。ただし、APIに準拠していないと、うまく機能しない場合もあります。
次のような操作を行うことで、ページ付けを完全にカスタマイズできます。
1)RKObjectPaginatorのサブクラス(または、そのルートをたどりたい場合は独自のクラス)を作成します。
2)重要なのはこのデリゲートメソッドをオーバーライドすることです
- (void) objectLoader:(RKObjectLoader *)loader willMapData:(inout __autoreleasing id *)mappableData;
3)このメソッドでは、mappableDataオブジェクトを取得し、「次のページ」パラメーターを見つけます。ただし、これを行うかどうかはあなた次第です。以下は、BingAPIを使用した例です。
- (void) objectLoader:(RKObjectLoader *)loader willMapData:(inout __autoreleasing id *)mappableData {
NSMutableDictionary* d = [[*mappableData objectForKey: @"d"] mutableCopy];
NSString* next = [d objectForKey: @"__next"];
if(!next) {
currentOffset = 0;
}
else {
NSDictionary* params = [next queryParameters];
perPage = [[params objectForKey: @"$top"] intValue];
currentOffset = [[params objectForKey: @"$skip"] intValue];
}
}
重要なことは、データをターゲットオブジェクトに渡す前に、データをマップすることです。これにより、1つの応答で2つのマップを効果的に実行できます(1つはページネーターオブジェクトへのマップ、もう1つはデータモデルへのマップ)。