小编Ted*_*Ted的帖子

RestKit嵌套到特定数组项的映射

可以通过mapKeyPath点语法强制RestKit对象映射器映射到数组中的特定嵌套对象吗?

这是我想要映射的响应

<result is_array="true">
  <item>
     <_field_data>
        <nid>
           <entity>
              <field_region>
                 <und is_array="true">
                    <item>
                       <value>1</value>
                    </item>
                 </und>
              </field_region>
....
Run Code Online (Sandbox Code Playgroud)

我只对将为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"];
Run Code Online (Sandbox Code Playgroud)

我不断得到类似于的错误:

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'
Run Code Online (Sandbox Code Playgroud)

我通过以下方式调用映射:

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:kMyResourcePath usingBlock:^(RKObjectLoader* loader) {
    loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[MyRecordClass class]];
    loader.method = RKRequestMethodGET;
    loader.delegate = …
Run Code Online (Sandbox Code Playgroud)

mapping core-data ios restkit

5
推荐指数
1
解决办法
957
查看次数

标签 统计

core-data ×1

ios ×1

mapping ×1

restkit ×1