RestKit:使用外键连接非嵌套关系 - 为源实体提供的属性无效

时间:2015-04-16 13:14:57

标签: restkit restkit-0.20

我正在尝试从两个单独的json文件映射对象(同时使用RestKit播种sqlite数据库)。这些文件由外部标识file1Code连接。

结构如下:

文件1:

[ {
  "code": "1",
  "activ": false,
  "name": "Joe"
  },
  {
  "code": "2",
  "activ": false,
  "name": "John"
  }
]

文件2:

[
  {
  "code": 666000,
  "name": "Hausarzt",
  "file1Code": "1",
  "activ": false
  }
]

文件1的实体如下所示:

@interface File1Entity :  KeyTab  

文件2的实体如下所示:

@interface File2Entity :  KeyTab
    @property (nonatomic, retain) File1Entitiy *file1Obj;

    // Transient
    @property (nonatomic, retain) NSNumber *file1Code;

KeyTab(两者都继承)看起来像这样:

@interface KeyTab :  NSManagedObject
    @property (nonatomic, retain) NSNumber * code;
    @property (nonatomic, retain) NSString * name;
    @property (nonatomic, retain) NSNumber * activ;        

现在我正在尝试使用"使用外键连接非嵌套关系"从RestKit文档中找到here

我正在使用addConnectionForRelationship这样:

[file2EntityMapping addConnectionForRelationship:@"file1Obj" 
    connectedBy:@{@"file1Code": @"code"}];

但是得到错误消息" 无法连接关系:为源实体提供的无效属性"因为file1Obj是属性而不是属性。

这是在RestKit中执行此操作的正确方法吗?

1 个答案:

答案 0 :(得分:0)

您需要在file1Code上添加File2Entity作为临时属性,并在映射期间设置它。外键连接在映射后完成,因此原始JSON不再可用(因此数据不存在的错误)。