我最困难的时候是使用RestKit建立一些关系。
从item
到venue
之间存在一对多的关系,但是通过多层次的关系。
以下是JSON结构的概述:
{
"id": 1,
"name": "Venue Name",
"sections": [
{
"id": 1,
"name": "Paper",
"categories": [
{
"id": 1,
"name": "Paper Goods",
"items": [
{
"venue" : 1
// Other data goes here
}
}
}
}
我正在尝试将venue
外键与id
的{{1}}属性相关联。
我尝试过以下操作:
Venue
但是在对象映射之后,场地属性是nil。
如何在此中使用NSEntityDescription * itemEntity = [NSEntityDescription entityForName:@"DSItem" inManagedObjectContext:managedObjectStore.mainQueueManagedObjectContext];
NSRelationshipDescription * venueRel = [itemEntity relationshipsByName][@"venue"];
RKConnectionDescription * connection = [[RKConnectionDescription alloc] initWithRelationship:venueRel attributes:@{@"venue" : @"pk"}]; // id --> pk on DSVenue class
来创建外键关系?或者有更好的方法吗?
类似的东西:
@parent
我看过那个问题this但它似乎适用于将属性链接到父属性,而不是将外键链接到实体。
任何帮助将不胜感激!
编辑:这是所有的映射代码
@{@"@parent.@parent.@parent.pk" : @"venue"}
答案 0 :(得分:1)
不要做你想做的事。您的映射看起来很好,假设您在模型中配置了反向关系,您可以只从项目实体导航到相关的场地实体。
那就是说,我认为@parent.id
引用应该可以使连接成为可能(通过提供对id的访问)。但同样,真的不需要。您可以在模型上获取和预测,以获得您所需的任何信息。