核心数据会是一个不错的选择吗?
Posted
技术标签:
【中文标题】核心数据会是一个不错的选择吗?【英文标题】:Would core data be a good choice? 【发布时间】:2012-07-22 20:47:59 【问题描述】:我正在尝试编写一个应用程序来访问和更改用户日历中的条目。这些变化是由相当复杂的规则驱动的,用户可以定义这些规则。
在我花太多时间开发之前,我的问题是我是否应该使用核心数据。很多模型将由核心数据处理,但我需要访问大量存储的信息然后更改它。这会是核心数据的问题吗?
如果我对核心数据有更好的理解会有所帮助,但在这一点上我没有:(有人可以评论在使用核心数据时对模型数据执行更改的可能性吗?我不想成为经过几个月的开发,发现我做出了错误的选择!
【问题讨论】:
【参考方案1】:最近发布的WWDC media collection 包含 2005 年的音频演示,当时 Core Data 框架作为 OS X 框架的一部分发布。该演示文稿涵盖了 Core Data 的主要目标、设计原则和架构。它还讨论了一组示例应用程序(recipy 应用程序)。该系列可通过 iTunesU 获得。值得一听掌握框架的工作原理。
我使用 Core Data 已经有一段时间了。我发现它易于使用,很好地集成到 Xcode 中,稳定并且到目前为止一直是我工作效率的真正贡献者。它为您的数据提供了各种存储选项(二进制、XML - 在开发过程中非常容易使用 - 和 SQLite),非常好的工具支持,对于小更改的简单模型迁移,对于主要模型更改的复杂迁移,需要一些额外的努力。
您必须了解 Core Data 既不是 RDBMS 也不是 RDBMS 映射工具这一事实。它是一个对象图和持久性框架,这是另一回事。如果您忽略这一事实,Core Data 可能会给您带来性能损失。
【讨论】:
非常感谢@Roger 的链接!我会听演讲。我还将继续阅读 Core Data 的 ADC 文档。【参考方案2】:使用 CoreData 进行架构更改并不比使用大多数其他数据框架更难。 CoreData 可以处理对您的数据模型on its own 的许多简单更改。当它找不到正确的事情时,you can write custom migrations。
根据我的经验,CoreData 通常使数据密集型应用程序更易于编写和维护,但在灵活性上的损失非常小,这是您通常不会错过的。
【讨论】:
你有没有指出我可能放松的那种灵活性?我必须说,总的来说,你的回答和@roger 的回答让 CD 看起来对我来说是一个不错的选择。以上是关于核心数据会是一个不错的选择吗?的主要内容,如果未能解决你的问题,请参考以下文章
科技云报道:“Sky Computing”会是云计算未来的新方向吗?