RestKit 和 AFIncrementalStore 的区别

Posted

技术标签:

【中文标题】RestKit 和 AFIncrementalStore 的区别【英文标题】:Differences between RestKit and AFIncrementalStore 【发布时间】:2012-12-13 09:48:19 【问题描述】:

在我的 ios 应用程序中,我正在尝试从(RESTful)服务器获取和发布数据。我认为 RestKit 和 AFIncrementalStore 都是不错的选择。 但是,我还需要能够离线保存数据并在应用程序在线时将其推送到服务器。

我正在尝试了解哪个框架更适合用于应用程序。

此外,从一些online resources 看来,似乎在 AFIncrementalStore 上使用错误可能会导致处理 ManagedContext(通常是 mainThread)的线程在提供网络请求以获取属性时卡住。有什么大不了的吗?

PS: 添加 afnetworking 标签,因为 afincrementalstore 标签不可用

【问题讨论】:

【参考方案1】:

AFIncrementalStore 在核心数据中工作,发送回您的 Web 服务。它使用 Apple 提供的称为 NSIncrementalStore 的相对较新的 API。

RestKit 在 Core Data 外部工作,使用 RK 提供的对象映射架构将 HTTP 请求松散地绑定到 Core Data。

以下是两者的优缺点:

新的 RestKit 版本 (0.2.x) 比 0.1 版本更轻 RestKit 现在使用非常好的 AFNetworking 来处理他的所有 HTTP 请求工作,就像 AFIncrementalStore 一样。 ResKit 有很多测试覆盖率 AFIS 非常轻巧,因为它是基于 NSIncrementalStore 构建的 AFIS 为您提供了更多的灵活性,因为您几乎可以靠自己 RestKit 非常庞大,一开始可能会很吓人 RestKit 是一个完整的解决方案,但需要时间来完全理解它的所有概念

我的最终建议是花时间尝试两者。我可以确认的是,您需要使用 AFIS 删除更多代码行,因为它不像 RestKit 那样需要您手动操作,所以这确实是一个偏好问题。

希望这将帮助您做出正确的选择!

【讨论】:

感谢您分享您的观点。我将开始尝试使用 RestKit(因为 AFIncrementalStore 带来的优势是属性错误,这在我现在的功能优先级中并不高)。

以上是关于RestKit 和 AFIncrementalStore 的区别的主要内容,如果未能解决你的问题,请参考以下文章

使用多个基本 URL 和多个对象管理器 (RestKit)

RestKit 和 AFNetworking 构建错误

RestKit 和拉动刷新

我可以使用 RestKit 和 Realm.io 吗?

一起使用 Realm.io 和 RestKit 时的属性数据类型

RESTKit:BaseURL 和路径模式