我正在尝试从两个单独的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中执行此操作的正确方法吗?
答案 0 :(得分:0)
您需要在file1Code
上添加File2Entity
作为临时属性,并在映射期间设置它。外键连接在映射后完成,因此原始JSON不再可用(因此数据不存在的错误)。