【问题标题】: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)类型不足,需要其他存储类型。
【问题讨论】:
标签:
ios
macos
cocoa
core-data
【解决方案1】:
当然,内置类型应该能够处理 90% 的需求,但仍然剩下 10%...
几个例子,其中一些我见过,其中一些只是可能性:
- 使用“增量存储”类型来使用 Core Data 处理 Web 服务,尽可能缓存内容。因此,“保存”被转换为网络请求以推送到服务器
- 使用 SQLite 以外的 SQL 数据库,可能是 MySQL
- 直接写入自定义文件格式
【解决方案2】:
我可以想到一个场景,我在 Cloud 上有一个数据库,它不是 sqlite,而且我一直希望它与我的设备数据库同步。在那种情况下,我可以在 iOS 中使用自定义持久存储。