Restkit 将对象加载到现有对象

Posted

技术标签:

【中文标题】Restkit 将对象加载到现有对象【英文标题】:Restkit load objects to an existing object 【发布时间】:2014-05-04 00:27:24 【问题描述】:

我正在使用带有核心数据的 Restkit 0.22,这是我的架构:

----------           --------
| itemA  |           | itemB |
----------           ---------
| itemsB | 1 --- > N | itemA |
----------           ---------

这是一对多的关系。 我从本地 JSON 文件加载所有 itemA 项目。

我想调用我的网络服务并获取 itemB 项目以及我想添加到特定现有 itemA 的每个调用的结果。

在 itemB 项目的响应中,没有 id 或外键表明这些项目属于我想要添加它们的特定项目。

我怎样才能实现/映射它?

【问题讨论】:

您使用什么 URL 来获取指定 ItemA 实例的 ItemB 对象? 这是一项网络服务,我发送的 itemA 没有特定值。我只想开始一个操作并将结果项连接到 itemA 所以您是在请求一个特定的ItemA,还是同时请求一个?你怎么知道哪个ItemB 连接到哪个ItemA 我根据itemA 属性URLPath 来构建url 请求。每个 itemA 都有自己的 url 路径,因此我的请求看起来像这样。 www.mywebservice.com?url=[somevalue].com 所以你的 URL 有一个查询参数,它是一个 URL,但不是任何 ItemA 的标识符 - 那么你有(至少是效率)问题 - 你能改变它吗? 【参考方案1】:

根据目前的信息,RestKit 帮不了你,因为没有容易获取的标识信息(URL 查询参数不容易获取)。

因此,您目前的主要选择是简单地迭代映射结果内容并将结果与​​您用于手动发出请求的itemA 对象相关联,然后保存上下文。

【讨论】:

我似乎必须更改我的网络服务上的一些东西才能让它像我想要的那样工作。谢谢! @Wain 您能否解释一下可访问的识别信息是如何工作的? 没关系,回答我自己的问题。必须在我的 RKRelationshipMapping 上将 assignmentPolicy 更改为 RKUnionAssignmentPolicy。

以上是关于Restkit 将对象加载到现有对象的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 RestKit 加载多个不相关的对象?

RestKit 到 Core Data 的映射和加载零对象。 RKManagedObjectLoader

在 Restkit 执行映射操作之前删除 Core data 中的现有对象

RestKit 托管对象上下文为零

RestKit 加载对象

Restkit 映射列表 - 没有响应描述符与加载的响应匹配