Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 在使用核心数据和推出定制模型之间,需要考虑哪些因素?_Cocoa_Macos_Core Data - Fatal编程技术网

Cocoa 在使用核心数据和推出定制模型之间,需要考虑哪些因素?

Cocoa 在使用核心数据和推出定制模型之间,需要考虑哪些因素?,cocoa,macos,core-data,Cocoa,Macos,Core Data,可能有一些应用程序不适合核心数据,例如Photoshop或Gimp等图像处理程序。但是对于适合核心数据的应用程序,例如通讯簿或iCal,选择核心数据而不是自定义模型的标准是什么?我最近启动了一个项目,决定在现实世界的应用程序中首次使用核心数据。我的应用程序实际上是使用自定义数据模型的旧应用程序的2.0版,所以我花了很多时间讨论这个问题。以下是我问自己的一些事情 是时候学习核心数据如何在一个不平凡的应用程序中工作,并修复在学习新技术时出现的小错误和特性了。这可能包括一个或两个原型,因为您不想使用

可能有一些应用程序不适合核心数据,例如Photoshop或Gimp等图像处理程序。但是对于适合核心数据的应用程序,例如通讯簿或iCal,选择核心数据而不是自定义模型的标准是什么?

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

  • 是时候学习核心数据如何在一个不平凡的应用程序中工作,并修复在学习新技术时出现的小错误和特性了。这可能包括一个或两个原型,因为您不想使用像核心数据这样的东西,而这些东西将负责您的应用程序的大部分

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

  • 是否要与核心数据不可用的平台(例如Cocoa Touch)共享代码。同样,如果您希望生成的数据文件兼容,而不必构建单独的导出器

  • 如果学习核心数据将有助于提高自己作为一名程序员的水平,无论是使您的应用程序对Mac开发商店更具吸引力,还是只供您自己使用

  • 如果您的数据模型足够简单,不需要像undo manager支持或关系这样的东西,那么核心数据真正闪耀的领域就是

  • 如果您使用的是外部库或其他技术,如分布式对象,您可能不想使用NSManagedObject

  • 无论出于何种原因,您是否将10.4之前的Mac OS X版本作为最低要求?如果是这样,你就没有核心数据了
  • 您是否允许用户在列表中手动排序?如果是这样的话,没有核心数据,就不允许有序的关系。(假设您可以创建一个数字“序列”属性,您可以根据该属性进行排序,但保持一致听起来像是一个巨大的麻烦。)
  • 您是否将使用特定的文件格式作为本机格式?(例如,TextEdit的本机格式为RTF。)否则,您将不会将核心数据用于磁盘存储,因此您可能根本不想使用它。(你可以,但我不确定还有足够的其他原因。)
  • 踢:)

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

    一旦bug开始出现(相信我,确实有),例如,当尝试将数据迁移到对象模型的新版本时,您就被卡住了,完全卡住了!告诉你的客户“很抱歉,我不能为你的应用开发一个新版本,我正在等待苹果公司提出一个修复方案”,这在现实世界中是不会奏效的。没有官方的方式来访问或理解底层结构,所以一旦它繁荣起来,你就只能靠自己了

    已经做过了,不要再去了


    我的2美分

    我不确定我是否正确理解了第3点。如果我有原生文件格式,我就不应该使用核心数据,对吗?有一点反对,是的。使用核心数据的一个原因是它可以为您处理磁盘存储,所以您不需要创建文件格式;相反,如果你已经有了一个文件格式,你就不需要核心数据来为你做这件事。但你可能有其他理由使用它。