Core Data:为啥要创建自定义持久存储?

Posted

技术标签:

【中文标题】Core Data:为啥要创建自定义持久存储?【英文标题】:Core Data: Why create a custom persistent store?Core Data:为什么要创建自定义持久存储? 【发布时间】:2013-09-17 13:27:25 【问题描述】:

我一直在研究“Pro Core Data”这本书,并且在第 3 章“创建自己的自定义持久存储”中达到了这一点。作者并没有真正谈论我为什么要创建自定义持久存储。唯一解决问题的地方:

在某些情况下,默认的商店类型不能最好地完成您的任务 正在努力实现。

这并没有真正回答我的问题。如果您不想使用提供的默认 SQL 版本,那么其中一种内置类型似乎应该可以解决任何问题。创建自定义存储类型似乎违背了 Core Data 的精神,我只关心对象的存储,而不是它们的存储方式。

我想看一些具体示例,说明为什么 SQL、二进制或属性列表(适用于 Mac OS X)类型不足,需要其他存储类型。

【问题讨论】:

【参考方案1】:

当然,内置类型应该能够处理 90% 的需求,但仍然剩下 10%...

几个例子,其中一些我见过,其中一些只是可能性:

使用“增量存储”类型来使用 Core Data 处理 Web 服务,尽可能缓存内容。因此,“保存”被转换为网络请求以推送到服务器 使用 SQLite 以外的 SQL 数据库,可能是 mysql 直接写入自定义文件格式

【讨论】:

【参考方案2】:

我可以想到一个场景,我在 Cloud 上有一个数据库,它不是 sqlite,而且我一直希望它与我的设备数据库同步。在那种情况下,我可以在 ios 中使用自定义持久存储。

【讨论】:

以上是关于Core Data:为啥要创建自定义持久存储?的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用 Core Data 的人想要在同一个托管对象模型中使用多个持久存储?

iphone数据存储之-- Core Data的使用

Core Data SQLite 存储在更新后变为只读

js自定data-*和jquery的data()用法

Core Data - 无法在 iOS 5.1 上创建持久存储

为啥 Core Data 获取请求从自定义 UITableViewCell 返回空?