向RestKit映射添加一对一外键连接的问题

我试图添加一个连接到RestKit映射,但没有成功。

我的JSON如下所示:

{ parent: { token: "token" title: "title", description: "description", child_id: 1 } } 

我的CoreDatascheme定义Parent ManagedObject在child项下有一个Child关系(和相反)。 在CoreData中已经有一个相应的Child对象之后, Parent映射发生了,所以这不是问题。

为了解决这个问题,我在networking上跟踪了一些链接和讨论,但都没有成功。 什么是正确的方法做到这一点,而不必添加一个child_id属性Parent (有人声称他们这样做,但它看起来不对我)。

假设我有这个映射:

 - (RKEntityMapping *)parentResponseMapping { RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:@"Parent" inManagedObjectStore:[self myStore]]; [mapping addAttributeMappingsFromArray:@[@"title", @"description"]]; mapping.identificationAttributes = @[@"token"]; return mapping; } 

起初我尝试添加像这样的连接:

 NSEntityDescription *parentEntity = [NSEntityDescription entityForName:@"Parent" inManagedObjectContext:[self myContext]]; NSRelationshipDescription *childRelationship = [parentEntity relationshipsByName][@"seller"]; RKConnectionDescription *connection = [[RKConnectionDescription alloc] initWithRelationship:childRelationship keyPath:@"child_id"]; [mapping addConnection:connection]; 

但是,我得到一个错误, child_id不是一个有效的属性(这是我尝试添加child_id属性到我的计划,但又一次,这似乎凌乱,而且,它不工作)。

我也尝试通过添加连接:

 [addConnectionForRelationship:@"child" connectedBy:@"child_id"] 

但是这也不起作用。

无论如何,这两种方法都会忽略子映射。

什么是正确的方法来实现这一目标?

编辑 : RestKit对象与外键映射关系 – 这已经在这里回答,但解决scheme看起来很奇怪。 这是唯一的方法来做到这一点?

而不必为parent添加一个child_id属性(有些人声称他们做了这个,但是对我来说看起来是错误的)。

这实际上是正确的做法…

重点是RestKit需要一些方法将两个项目映射在一起,一些关键用于search和查找要连接的项目。 这个信息只需要是暂时的(假设你一次加载数据或者识别的另一侧是持久属性)。 没有其他办法可以做到。