gpt4 book ai didi

ios - RestKit - 通过嵌套外键的核心数据多对多关系

转载 作者:行者123 更新时间:2023-11-29 03:00:22 25 4
gpt4 key购买 nike

我一直在研究如何使用 RestKit 0.22.0 来连接核心数据中的关系,并且想知道如何映射部分形成的实体。

我使用的 API 返回类似于下面所示的 JSON。请注意,轨道数组正在返回包含轨道外键 ID 的字典对象。

{
"code": 200,
"data": [
{
"active": true,
"tracks": [
{
"collection": "tracks",
"id": "00000000000000000000000000"
},
{
"collection": "tracks",
"id": "11111111111111111111111111"
}
],
"created_at": "2014-04-25 07:00:07.264000",
"id": "abcdefghijklmnop1234567890",
"title": "My Playlist",
"updated_at": "2014-04-25 16:44:39.390000",
"weight": 0.0
}
],
"info": {
"limit": null,
"skip": null,
"total": 1
}
}

数据模型如下所示(为演示而简化):

Simplified Core Data Model

播放列表的实体映射目前包含以下代码来设置关系:

[playlistEntityMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"tracks" toKeyPath:@"tracks" withMapping:trackEntityMapping]];

然后我可以点击 API 来检索完整的对象。这似乎适用于 GET 请求,并且它在具有 identificationAttributes 设置的核心数据中使用相同的托管对象。然而,这闻起来不太对劲。如果我尝试使用反向映射到服务器上具有任何本地修改关系的 PATCH 对象,RestKit 将创建完全形成/嵌套的 JSON 结构以发送到服务器,而不是简单地使用外键。

我进行了研究并发现了许多有用的资源,例如:

...和其他人。

看起来 RKConnectionDescription 可以帮助我剔除数据。 RKConnectionDescription 文档包含一个示例,其中一组 id 被填充到实体的 transient 属性中。如果文档中的片段之外还有引用示例,我很乐意看到 RKConnectionDescription 的实际应用示例。这似乎是 RestKit 武器库中如此强大的工具,也许值得一些示例代码或在 wiki 中进行深入探索。

谁能指出正确的方向以正确连接这些关系?

最佳答案

您不能使用 RestKit 的外键功能进行序列化,因为它是为映射传入数据而设计的。我没有尝试过,但我不希望在进行映射的逆运算时反转连接,因为它只是使用来自其他映射(通常是 transient 变量)的信息来促进关系的建立。

因此,您应该做的是创建一个自定义映射(而不是反向映射),该映射仅从关系(身份)中提取您想要的信息,并使用该映射进行序列化。

关于ios - RestKit - 通过嵌套外键的核心数据多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23379516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com