Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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
Iphone 何时使用核心数据,何时使用Sqlite?_Iphone_Sqlite_Core Data - Fatal编程技术网

Iphone 何时使用核心数据,何时使用Sqlite?

Iphone 何时使用核心数据,何时使用Sqlite?,iphone,sqlite,core-data,Iphone,Sqlite,Core Data,我在学习核心数据,之前我在我的一个项目中使用过SQLite。我的问题是,我应该在什么情况下使用核心数据vesus SQLite?我已经读过一些核心数据的优点,它提供了设计数据结构的可视化方法,访问数据的抽象级别,SQLite可以在多平台上使用,但是否有与数据大小相关的内容?如果数据大小大于我们应该使用的核心数据,反之亦然?核心数据的数据量没有限制-事实上,它使用SQLite作为存储,因此数据大小不应该困扰您 核心数据是一个非常好的解决方案,因此我建议您在项目中使用它。核心数据: 主要功能是图形管

我在学习核心数据,之前我在我的一个项目中使用过SQLite。我的问题是,我应该在什么情况下使用核心数据vesus SQLite?我已经读过一些核心数据的优点,它提供了设计数据结构的可视化方法,访问数据的抽象级别,SQLite可以在多平台上使用,但是否有与数据大小相关的内容?如果数据大小大于我们应该使用的核心数据,反之亦然?

核心数据的数据量没有限制-事实上,它使用SQLite作为存储,因此数据大小不应该困扰您


核心数据是一个非常好的解决方案,因此我建议您在项目中使用它。

核心数据:

  • 主要功能是图形管理(尽管读写磁盘是重要的支持功能)

  • 对存储在内存中的对象进行操作(尽管可以从磁盘延迟加载)

  • 与完全成熟的对象一起工作,这些对象可以自我管理其许多行为,并且可以为进一步的行为进行子类化和自定义

  • 非事务性、单线程、单用户(除非您围绕提供这些功能的核心数据创建一个完整的抽象)

  • 只在内存中运行

  • 需要一个保存过程

  • 可以在内存中快速创建数百万个新对象(尽管保存这些对象会很慢)

  • 将数据约束留给程序的业务逻辑端

  • 数据库或SQLite:

  • 主要功能是存储和获取数据

  • 对存储在磁盘上的数据进行操作(或以最小和增量方式加载)

  • 存储“哑”数据

  • 可以是事务性的、线程安全的、多用户的

  • 可以删除表格和编辑数据,而无需加载到内存中

  • 永久保存到磁盘(通常具有崩溃恢复能力)

  • 创建数百万新行可能很慢

  • 提供数据约束,如“唯一”键

  • 参考下面的链接

    对于实体之间具有更多“多对多”或“一对多”关系的大型数据(超过100000条记录),在这种情况下,您可以使用SQLite,否则您可以毫无问题地获取核心数据

    还有一个建议,在做出任何决定之前,请规范化您的数据库

    要使用SQLite处理大型数据, 有一个非常好的教程
    根据我的经验,数据大小从来都不是问题,但我听说SQLite更健壮。我之所以选择SQLite,是因为我们希望我们的应用程序预先为用户填充数据,并为单个用户填充核心数据,这些数据将像通讯簿一样填充它。

    可能重复:我不知道为什么我的问题被否决,因为我的问题是我们可以使用核心数据和SQLite的场景,我在任何地方都找不到它,所以我问了。您建议的链接也显示了核心数据在图形中的优势,但没有提到在哪些情况下,如果不需要图形,我们应该使用核心数据或SQLite。或者可以说,这是一个显示我们应该使用核心数据的场景,其中需要使用图表。请那些投反对票的人给出他们的意见,因为我想知道哪里出了问题。我也在寻找这个答案,我在采访中也被问到了同样的问题。因此,我想知道主持人是否允许将其作为一个建设性问题来回答。请回答。您为什么要发布两个单独的答案?谢谢您的回答,但我的问题不是核心数据和SQLite之间的比较。我想知道这些场景。@NuzhatZari:比较告诉您这些场景。例如,您想要/需要多用户?然后使用SQLite,因为这个特性是免费的,必须首先为CoreData实现它。或者您正在处理的数据超过了内存的容量?那么CoreData就没有选择了,SQLite将是一个选择。