1

ここでは、開発中のプロジェクトにさまざまなリクエストを追加する非常に混乱する時期があります。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でない限り失敗するというのがルールですか?すべてのオブジェクトを同じ方法で認識させたいです。私はそれを機能させることができますが、あるクエリにキーパスを使用し、他のクエリにリソースパスを使用するのは好きではありません。forResourcePathPatternAPI を制御できず、キーパスを返すクエリと返さないクエリがあるため、すべてに使用したかったのです。

4

0 に答える 0