Ios 如何定义RestKit中不在同一JSON文档中的实体之间的关系映射?

Ios 如何定义RestKit中不在同一JSON文档中的实体之间的关系映射?,ios,core-data,restkit,restkit-0.20,Ios,Core Data,Restkit,Restkit 0.20,使用RestKit 0.20.2 例如: 我设置了两个核心数据实体“Album”和“Song”以及关系,以定义一个唱片集有多首歌曲,而一首歌曲属于一个唱片集 我进行了实体映射,我可以成功地显示相册列表 我呼吁: /albums获取相册 /albums/:albumId/songs获取由albumId 我从来没有一个JSON文档同时保存一张专辑和它的歌曲。(github上提供的所有RestKit示例都假设您处理一个包含所有实体的JSON文档) 如何设置这两个实体之间的关系,以使RestKit在我的

使用RestKit 0.20.2

例如: 我设置了两个核心数据实体“Album”和“Song”以及关系,以定义一个唱片集有多首歌曲,而一首歌曲属于一个唱片集

我进行了实体映射,我可以成功地显示相册列表

我呼吁:

/albums
获取相册

/albums/:albumId/songs
获取由
albumId

我从来没有一个JSON文档同时保存一张专辑和它的歌曲。(github上提供的所有RestKit示例都假设您处理一个包含所有实体的JSON文档)


如何设置这两个实体之间的关系,以使RestKit在我的核心数据对象存储中正确地写入它们?

您需要使用
RKObjectManager
和路由

配置映射时,包括和项,用于从路由URL提取
albumId
,并将其存储到歌曲的临时属性中:

@"@metadata.routing.parameters.albumId": @"connectionAlbumId",
然后,您可以添加关系映射以将歌曲连接到相应的唱片集:

[songMapping addConnectionForRelationship:@"album" connectedBy:@{ @"connectionAlbumId": @"identity" }];

其中,
@“identity”
是保存唱片集管理对象上的标识的属性的名称。

您向服务器发出的获取唱片集歌曲的请求应该在URL路径中具有唱片集标识-是?确实是。我把这个问题编辑得更清楚了,我不应该在albumMapping中添加一些东西吗?还有那个临时属性,我不应该让它持久化吗?因为我需要它来过滤fetch请求块中的songs实体…如果您想将其用于其他用途,可以将其永久化。关系应该是双向的,所以只有在一端完成它,也会自动完成另一端(核心数据本身就是这样做的)。谢谢你,在几个小时的文档搜索后帮了我很多!