在没有外键的情况下连接与RestKit的关系

时间:2014-06-03 23:50:24

标签: objective-c cocoa core-data restkit

我试图与RestKit建立多对多关系。

假设我们有2个实体:

用户,由/user/:login_name返回:

{
    id: 1234,
    name: 'Joe Bloggs',
    ...
}

和群组,由/user/:login_name/groups返回:

[
    {
        id: 2345,
        name: 'Diggers',
        ...
    },
    {   id: 2346,
        name: 'Fillers',
        ...
    },
    ...
]

每个用户可以属于多个组,每个组可以有多个用户。

我的核心数据模型反映了API返回的数据以及User.groupsGroup.users关系。

问题是API没有返回外键:既没有User.groups也没有Group.users集合。那么,据我所知,在这种情况下我不能使用RKConnectionDescription

看起来[RKRoute routeWithRelationshipName:objectClass:pathPattern:method:]可能已被使用,但我没有使用对象映射,看起来路由无法与实体映射一起使用。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您可以使用RKConnectionDescription,但您需要谨慎行事......

你应该使用路线。重要的部分是让RestKit在路由元数据中收集:login_name,然后您可以在映射中使用它。

这意味着您需要在请求组之前请求用户,以便DB中有一些内容可供查找。

您还需要将RestKit设置为使用RKAssignmentPolicyUnion,以便建立关系而不是替换它们。

有关路由和元数据的更多详细信息,请参阅this answer。有关RKAssignmentPolicyUnion详细信息,请参阅this answer