0
我想从两个单独的json文件中映射对象(同时使用RestKit播种sqlite数据库)。这些文件通过外部ID file1Code
连接。RestKit:使用外键连接非嵌套关系 - 为源实体提供的无效属性
的结构是这样的:
文件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中做到这一点的正确方法吗?
实际上,我已经把'file1Code'作为'File2Entity'上的一个瞬态属性。但是之后它又回到了我的[其他未解决的问题](http://stackoverflow.com/q/29670218/332248),关于如何在映射之后和对象被存储之前拦截RestKit,以便我可以自己完成关系。 – Jens
外键映射是如何连接关系。如果你有这个属性,那么你不应该看到'为源实体提供的无效属性'。 – Wain
首先:感谢您的帮助。我试图按照标题为“使用外键连接非嵌套关系”的指南[这里](https://github.com/RestKit/RestKit/wiki/Object-mapping)。我想我的设置与例子几乎相同(我有两个单独的json文件)。 – Jens