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 的人想要在同一个托管对象模型中使用多个持久存储?