我正在尝试编写一个应用程序来访问和更改用户日历中的条目。这些更改由用户可以定义的相当复杂的规则驱动。
在我花太多时间开发之前,我的问题是我是否应该使用核心数据。很多模型将由核心数据处理,但我需要访问大量存储的信息然后对其进行更改。这会是核心数据的问题吗?
如果我对核心数据有更好的理解会有所帮助,但在这一点上我没有:(有人可以评论在使用核心数据时对模型数据执行更改的可能性吗?我不想待几个月进入开发,发现我做了错误的选择!
使用 CoreData 进行模式更改并不比使用大多数其他数据框架更难。CoreData 可以自行处理对数据模型的许多简单更改。当它无法确定正确的事情时,您可以编写自定义迁移。
以我的经验,CoreData 通常使数据密集型应用程序更易于编写和维护,但在灵活性上的损失非常小,您通常不会错过。
最近发布的WWDC 媒体集包含 2005 年的音频演示文稿,当时 Core Data 框架作为 OS X 框架的一部分发布。该演示文稿涵盖了 Core Data 的主要目标、设计原则和架构。它还讨论了一组示例应用程序(recipy 应用程序)。该系列可通过 iTunesU 获得。值得听听掌握框架的工作原理。
我已经使用 Core Data 有一段时间了。我发现它易于使用,很好地集成到 Xcode 中,稳定并且到目前为止一直是我工作效率的真正贡献者。它为您的数据提供了各种存储选项(二进制、XML - 在开发过程中非常容易使用 - 和 SQLite),非常好的工具支持,用于小更改的简单模型迁移,可用于重大模型更改的复杂迁移,需要额外的努力。
您必须意识到 Core Data 既不是 RDBMS 也不是 RDBMS 映射工具这一事实。它是一个对象图和持久性框架,这是另一回事。如果你忽略这个事实,Core Data 可能会给你带来性能损失。