Iphone 使用核心数据有哪些优点?(与plist相反)

Iphone 使用核心数据有哪些优点?(与plist相反),iphone,objective-c,core-data,plist,Iphone,Objective C,Core Data,Plist,我对iOS和编程比较陌生,以前我做过一个应用程序,但它使用plist存储,我将其保存到documents文件夹中。现在,我正在考虑切换到核心数据,但它看起来有点复杂,我不确定它是否能满足我的需要。我将有一组需要绘制的数据,因此我不确定核心数据是否最适合于此,因为我似乎无法在.xcdatamodeld文件中创建数组类型。核心数据还有哪些其他优势?速度快吗?易于使用(一旦设置好) 更新:对于任何想知道的人来说,我完成了应用程序,学习如何使用核心数据是完全值得的,而且它比我最初认为的要简单得多。如果是

我对iOS和编程比较陌生,以前我做过一个应用程序,但它使用plist存储,我将其保存到documents文件夹中。现在,我正在考虑切换到核心数据,但它看起来有点复杂,我不确定它是否能满足我的需要。我将有一组需要绘制的数据,因此我不确定核心数据是否最适合于此,因为我似乎无法在.xcdatamodeld文件中创建数组类型。核心数据还有哪些其他优势?速度快吗?易于使用(一旦设置好)


更新:对于任何想知道的人来说,我完成了应用程序,学习如何使用核心数据是完全值得的,而且它比我最初认为的要简单得多。如果是用钳子做的话,那将是地狱。一开始他们做这件事的方式似乎有点神秘,但如果你开始使用它,你就会得到它。这种关系真的很了不起。

这是一个你在储蓄什么的问题。对于简单的字符串、数组、字典,可以使用plist。对于更复杂的东西(数据、图像、非对象信息)或具有多对多关系的东西(想想歌曲与专辑、照片与摄影师之间的关系),那么像SQLite这样更健壮的解决方案可能会更好

CoreData是围绕SQLite的基于objective-c的包装器。如果您认为您可能想要更复杂的东西,CoreData可能是一种选择

如果您需要快速教程,我会查看:

这让我开始学习CoreData的基本工作原理


祝你好运

我想到的一些好处:

  • 更好的内存管理。用plist你必须把整个东西载入记忆;对于核心数据,只需加载当前使用的对象。此外,一旦加载对象,它们通常是占位符“fault”对象,其特性数据在需要时才会加载
  • 与上述相关,当您进行更改时,您只能保存更改的对象,而不能保存整个数据集
  • 您可以直接读取/写入模型对象,而无需将它们转换为NSDictionary之类的东西
  • 从数据存储中提取对象时内置的对象排序
  • 丰富的谓词系统,用于搜索数据集中感兴趣的对象
  • 实体之间的关系作为相关对象的属性直接处理。使用plist,您需要执行一些操作,比如存储关系的对象ID,然后查找相关对象
  • 可选的属性值自动验证

数据模型不使用数组,但“多对多”关系被建模为集合。

您可能会发现这很有帮助……虽然核心数据使用SQLite(在iPhone上)是正确的,但这是一个实现细节,您不应该将核心数据仅仅看作一个包装器。这是一个对象持久性框架。它为您处理磁盘的保存和恢复。+1。喜欢你解释每个问题的方式#范诺托姆。