RestKit 和核心数据 - 如何发布数据?
Posted
技术标签:
【中文标题】RestKit 和核心数据 - 如何发布数据?【英文标题】:RestKit and Core Data - How to POST data? 【发布时间】:2014-04-08 21:37:47 【问题描述】:我正在使用带有 Core Data 集成的 RestKit .22.0,这两个我都不太熟悉。我按照 RKGist 教程学习了如何从 REST 端点获取对象、设置对象映射、添加路由以及查看来自 Web 服务的数据是否正确插入到 Core Data sqlite 数据库中。
现在我开始着手将对象持久化到 Web 服务,但找不到任何关于如何最好地做到这一点的信息。似乎有多种方法可以用 RestKit 给猫剥皮,所以我想看看 POST/PUT 数据的最佳做法是什么。
-
当POST一个新对象时,通常是先将对象保存在托管对象上下文中,然后调用
[[RKObjectManager sharedManager] postObject:path:parameters:success:failure:]
吗?或者是否有一些 RestKit 方法可以同时执行这两项操作?
如果您首先将对象保存在 Core Data 中,然后将其 POST 到 Web 服务,RestKit 是否能够使用服务的数据库标识属性更新已插入的对象? [[RKObjectManager sharedManager] postObject:path:parameters:success:failure:]
方法会为您执行此操作吗?
如果 POST 对象出错,重试 POST 的典型方式是什么?您会在核心数据托管对象中查找某种标志并在单独的线程中重试吗?
谢谢!
【问题讨论】:
好问题。这个问题的答案应该添加到官方文档中。 【参考方案1】:-
是的,那么来自 POST 的响应会更新同一个对象(可能填写服务器指定的唯一 ID)
是的,更新 POSTed 对象是默认行为(您需要指定响应映射并且响应必须是单个对象)
一般没有单独的线程,这取决于导致错误的原因。有一个标志表明它已上传并在重新建立网络连接时重试
【讨论】:
以上是关于RestKit 和核心数据 - 如何发布数据?的主要内容,如果未能解决你的问题,请参考以下文章
Restkit 核心数据与 NSManagedObjectContext 集成
不使用 Web 服务时如何使用来自 RestKit 的核心数据?