私は ios/RESTKIT が初めてです。RESTKIT を使用して iOS デバイスから Web サービスを利用しようとしています。json の戻り値には、2 つの結果が考えられます。
A)失敗すると、 jsonの結果は次のようになります (結果は文字列 "null" です。エラー コードは利用可能です)。
{
    status: false,
    result: null
    error: NO_SUCH_USER
}
(A) のマッピング
RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[WsReturn class]];
    [mapping mapKeyPath:@"result" toAttribute:@"result"];
    [mapping mapKeyPath:@"status" toAttribute:@"status"];
    [mapping mapKeyPath:@"error" toAttribute:@"error"];
    [objectManager.mappingProvider setMapping:mapping forKeyPath:@"/"];
B)成功すると、次のようになります (結果は「複雑なオブジェクト」です。エラー コードは null です):
{
    status: true,
    result: {   
       name: "Some User",
       tasks: [
            {
              name: "Some Task1",
              taskId: 10
            },
            {
              name: "Some Task2",
              taskId: 20
            }
       ]
    },
    error: null
}
(B) のマッピング
RKObjectMapping* taskMapping = [RKObjectMapping mappingForClass:[Task class]];
    [taskMapping mapKeyPath:@"name" toAttribute:@"name"];
    [taskMapping mapKeyPath:@"taskId" toAttribute:@"taskId"];
    [objectManager.mappingProvider setMapping:taskMapping forKeyPath:@"tasks"]; 
RKObjectMapping* resultMapping = [RKObjectMapping mappingForClass:[Result class]];
    [resultMapping mapKeyPath:@"name" toAttribute:@"name"];
    [resultMapping mapRelationship:@"tasks" withMapping:taskMapping];
    [objectManager.mappingProvider setMapping:resultMapping forKeyPath:@"result"];
RKObjectMapping* cmplxMapng = [RKObjectMapping mappingForClass:[WsReturn class]];
    [cmplxMapng mapKeyPath:@"status" toAttribute:@"status"];
    [cmplxMapng mapKeyPath:@"error" toAttribute:@"error"];
    [cmplxMapng mapRelationship:@"result" withMapping:resultMapping];
    [objectManager.mappingProvider setMapping:cmplxMapng forKeyPath:@"/"];
質問
1) (A) 正常に動作します。(B) しません。いくつかの指針を提供できますか?
2) 同じ Web サービス呼び出しの場合、「結果」部分は文字列 (null) または複雑なオブジェクトである可能性があります。では、これをコードでどのように処理すればよいでしょうか。どのマッピングを渡しますか? マッピングまたは cmplxMapng (横スクロールを避けるために名前が変更されました)?
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/myUrl" 
    objectMapping: HOW_TO_DECIDE_WHICH_MAPPING_TO_PASS_HERE delegate:self];
これは一般的なシナリオだと思います。検索しましたが、関連する例は見つかりませんでした。多分私は間違った場所を見ました。これにアプローチする方法についての考え/指針が役立ちます。ありがとう。