ここでは、開発中のプロジェクトにさまざまなリクエストを追加する非常に混乱する時期があります。2 つのオブジェクトの場合、これまでのところ正常にsetObjectMapping:forResourcePathPattern:
動作します。これらには、 および のようなリソース パターンが@"customer/login/"
あり@"customer/getDuckStatus/"
ます。正しいマッピングでオブジェクトを作成できないクエリは、@"customer/getPondsForDuck/"
// this define is used for object mapping and for creating the query,
// it can't be a mismatch
#define kResourcePathDuckPond @"customer/getPondsForDuck/"
クエリで確認できる唯一の違いは、返された JSON のキーパスが、機能する最初の 2 つのクエリで nil であることです。キーパスが nil で、forResourcePathPattern
オブジェクト マッピングの設定に使用される場合、objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects
(RKObjectLoaderDelegate
メソッド) は正しいマッピングを持つ有効なオブジェクトを受け取ります。キーパスが非 nil の場合、 usingforResourcePathPattern
は常にdidLoadObjects:
nil オブジェクトを送信します。
使用する
[[RKObjectManager sharedManager].mappingProvider setObjectMapping:duckMapping
forResourcePathPattern:kResourcePathDuckPond];
失敗します。使用する
[[RKObjectManager sharedManager].mappingProvider setObjectMapping:duckMapping
forKeyPath:@"ponds"];
(「ponds」は、返された JSON で指定されたキーパスです)正常に動作します。
forResourcePathPattern
キーパスがnilでない限り失敗するというのがルールですか?すべてのオブジェクトを同じ方法で認識させたいです。私はそれを機能させることができますが、あるクエリにキーパスを使用し、他のクエリにリソースパスを使用するのは好きではありません。forResourcePathPattern
API を制御できず、キーパスを返すクエリと返さないクエリがあるため、すべてに使用したかったのです。