RestKit RKDynamicObjectMapping仅适用于第一个JSON结果

时间:2012-01-20 14:14:33

标签: ios rest wcf-data-services restkit

我遇到了RKDynamicObjectMapping的问题,但它可能是。{ 我滥用它。

我有以下情况

  1. 要求服务获取区域
  2. 选择区域
  3. 要求服务部门获取选定区域的期刊
  4. 两次调用返回的数据都是那样的

    { d: [{cutID:""}, {cutID:""}, {cutID:""}] } 
    { d: [{journalID:""}, {journalID:""}, {journalID:""}] } 
    

    我有以下代码

    RKObjectMapping* cutMapping = [RKObjectMapping mappingForClass:[Cut 
    class]]; 
    [cutMapping mapKeyPath:@"CutID" toAttribute:@"cutID"]; 
    RKObjectMapping* journalMapping = [RKObjectMapping mappingForClass: 
    [Journal class]]; 
    [journalMapping mapKeyPath:@"journalID" toAttribute:@"journalID"]; 
    RKDynamicObjectMapping * dynamicMapping  = [RKDynamicObjectMapping 
    dynamicMapping]; 
    [dynamicMapping setObjectMapping:journalMapping 
    whenValueOfKeyPath:@"__metadata.type" isEqualTo:@"JournalDetails"]; 
    [dynamicMapping setObjectMapping:cutMapping 
    whenValueOfKeyPath:@"__metadata.type" isEqualTo:@"Cut"]; 
    [[[RKObjectManager sharedManager] mappingProvider] 
    setMapping:dynamicMapping forKeyPath:@"d"]; 
    
    .... 
    
    [objectManager loadObjectsAtResourcePath:getResourcePath 
    delegate:self]; 
    
    .... 
    

    以后

    [objectManager loadObjectsAtResourcePath:getResourcePath 
    delegate:obj]; 
    

    返回Cut个对象的第一个请求的结果被完美地映射,但不是第二个返回Journal个对象的结果。 登录request:didLoadResponse表明服务返回 期待json,所以问题在于映射 如何使它与两个映射一起工作?

    有人使用RestKit动态制图吗?

1 个答案:

答案 0 :(得分:2)

我认为您已检查剪切对象是否已映射到CoreData实体中的 to-many 关系?

如果是这样,你可以打开RESTKit记录并发布结果