核心数据:为什么要创建自定义持久性存储?

时间:2013-09-17 13:27:25

标签: ios macos cocoa core-data

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

  

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

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

我想看看为什么SQL,二进制或属性列表(对于Mac OS X),类型不合适并且需要其他商店类型的一些具体示例。

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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