Restkit / Core Data关系映射,实体到同一类型的实体(父/子)

时间:2013-07-09 19:15:14

标签: ios rest core-data restkit

我正在关注RestKit 0.2.0上的Alexander Edge tutorial,但我对如何将其应用于我的需求感到困惑。具体来说,我正在使用以下结构返回对象的Web服务:

{
    "ObjectIdMember": 200,
    "ObjectNameMember": "Baseball Bat",
    "SubObjectIdMember": 4124
},
{
    "ObjectIdMember": 200,
    "ObjectNameMember": "Baseball Glove",
    "SubObjectIdMember": 4555
},

这个想法是Object实体可以有许多子对象。粗略地说,获取Object的目的是使用DisplayName填充表视图中的节标题,并按对象分组子对象。

如何使用RestKit + Core Data捕获这种关系(或定义它)?本教程仅建议在响应中定义了子对象时可能会执行的操作,但这是另一种情况。

我知道我可以装饰并使用Object的子类-(NSArray *)getSubObjects,但是核心数据不知道我在做什么,因为它不会使用任何关系。

1 个答案:

答案 0 :(得分:1)

我相信你想要的是RKConnectionDescription,它可以使用外键在Core Data中建立关系。

文档中的示例给出了以下json:

{ "project": 
    { "id": 12345, 
      "name": "My Project",
      "userID": 1
    }
}

使用以下映射配置:

NSEntityDescription *projectEntity = [NSEntityDescription entityForName:@"Project" inManagedObjectContext:managedObjectContext];
NSRelationshipDescription *userRelationship = [projectEntity relationshipsByName][@"user"];
RKConnectionDescription *connection = [[RKConnectionDescription alloc] initWithRelationship:userRelationship attributes:@{ @"userID": @"userID" }];