2012-05-21 18 views
5

RestKitオブジェクトマッパーは、mapKeyPathドット構文を使用して、配列内の特定のネストされたオブジェクトに強制的にマッピングできますか?ここで特定の配列アイテムへのRestKitネストされたマッピング

は私が私が今までfield_regionのために返される最初の項目にのみ興味が

<result is_array="true"> 
    <item> 
    <_field_data> 
     <nid> 
      <entity> 
       <field_region> 
       <und is_array="true"> 
        <item> 
         <value>1</value> 
        </item> 
       </und> 
       </field_region> 
.... 

をマップしようとしています応答です。

これをマップする正しい方法は何ですか?

私は、様々な反復処理しようとしている:

RKManagedObjectMapping *record = [RKManagedObjectMapping mappingForClass:[MyRecordClass class] inManagedObjectStore:objManager.objectStore]; 
[record mapKeyPath:@"_field_data.nid.entity.field_region.und.0.item.value" toAttribute:@"region"]; 

を、私はと同種のエラー得続ける:

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:kMyResourcePath usingBlock:^(RKObjectLoader* loader) { 
    loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[MyRecordClass class]]; 
    loader.method = RKRequestMethodGET; 
    loader.delegate = self; 
    loader.targetObject = nil; 
}]; 

任意のアイデア:私は経由してマッピングを呼び出す

T restkit.object_mapping:RKObjectMappingOperation.m:152 Found transformable value at keyPath '_field_data.nid.entity.field_region.und.0.item.value'. Transforming from type '__NSArrayI' to 'NSNumber' 
W restkit.object_mapping:RKObjectMappingOperation.m:232 Failed transformation of value at keyPath '_field_data.nid.entity.field_region.und.0.item.value'. No strategy for transforming from '__NSArrayI' to 'NSNumber' 

を?最も高く評価されました!

答えて

0

エンティティオブジェクトのマッピングにフィールド領域オブジェクトが含まれるように、すべてのレベルでマッピングする必要があると思います。フィールド領域オブジェクトマッピングにはundオブジェクトが含まれます。オブジェクトマッピングにはアイテムなどが含まれています...

これは、xmlではなく入れ子になったjson restキットの応答でのみ行いましたが、各レベルのマッピングを作成する必要がありました。 (あなたはすべてのレベルのために関係が必要があると思いますので、これは不完全で付与された)このような

何か

RKObjectMapping* undMapping = [RKObjectMapping mappingForClass:[UND class]]; 
[und mapKeyPath:@"item" toAttribute:@"item"]; 

RKObjectMapping* regionmapping = [RKObjectMapping mappingForClass:[Region class]]; 
[regionmapping mapKeyPath:@"und" toRelationship:@"undArrays" withMapping:undMapping]; 
+0

感謝。私はマッピングの中でこのマッピングを調べましたが、サーバレスポンスを簡素化することが賢明で(簡単に)できたと思いました。 – Ted

関連する問題