3

可能有一些应用程序不适合 Core Data - 例如 Photoshop 或 Gimp 等图像处理程序。但是对于适合 Core Data 的应用程序,比如 Address Book 或 iCal,选择 Core Data 而不是自定义模型的标准是什么?

4

3 回答 3

3

我最近开始了一个项目,我决定第一次在现实世界的应用程序中使用 Core Data。我的应用程序实际上是一个使用自定义数据模型的旧应用程序的 2.0 版,所以我花了很多时间讨论这个问题。以下是我问自己的一些事情。

  • 是时候了解 Core Data 如何在一个重要的应用程序中工作,并修复在学习新技术时出现的小错误和特性。这可能包括一个或两个原型,因为您不想跳入使用诸如 Core Data 之类的东西,这些东西将负责您的应用程序的大块。

  • Core Data 是否会解决使用自定义数据模型时难以解决的问题,例如在内存中存储和保存非常大的数据集。

  • 您是否想与 Core Data 不可用的平台共享代码,例如 Cocoa Touch。同样,如果您希望生成的数据文件兼容,而无需构建单独的导出器。

  • 如果学习 Core Data 将有助于提高自己作为一名程序员的能力,无论是让你对 Mac 开发商店更具吸引力,还是仅供你自己使用。

  • 如果您的数据模型足够简单以至于您真的不需要撤消管理器支持或关系之类的东西,那么核心数据真正闪耀的领域。

  • 如果您正在使用外部库或其他技术(例如分布式对象),您可能不想使用 NSManagedObject。

于 2008-11-24T21:45:30.527 回答
1
  1. 无论出于何种原因,您是否将 10.4 之前的 Mac OS X 版本作为您的最低要求?如果是这样,则没有适合您的核心数据。
  2. 您是否要允许用户手动订购列表中的东西?如果是这样,则没有适合您的核心数据——它不允许有序关系。(假设您可以创建一个可以排序的数字“序列”属性,但保持一致听起来很麻烦。)
  3. 您是否将使用特定的文件格式作为您的本机格式?(例如,TextEdit 的原生格式是 RTF。)如果不是,您将不会使用 Core Data 进行磁盘存储,因此您可能根本不想使用它。(你可以,但我不确定还有足够的其他原因。)
于 2008-11-25T07:02:19.607 回答
0

踢:)

对我来说,您需要问自己的最大问题是:您是要在其中存储关键数据(用户创建的内容)还是可以轻松复制的数据(从互联网下载的内容)。如果你有第一个(用户创建的数据),我会尽快远离 Core Data,或者确保你的应用中有备份计划。

一旦错误开始出现(相信我,确实存在),例如,当您尝试将数据迁移到对象模型的新版本时,您就会卡住,完全卡住!告诉您的客户“我很抱歉我无法构建您的应用程序的新版本,我正在等待 Apple 提出修复”并不会在现实世界中削减它。没有访问或理解底层结构的官方方法,所以一旦它开始繁荣,你就只能靠自己了。

去过那里,不再去那里!

我的 2 美分

于 2012-04-08T14:12:19.723 回答