我是核心数据的新手,请帮助我一些混淆......
如果核心数据在后端使用sqlite那么为什么我们使用核心数据而不是sqlite?
它如何比sqlite快。
我读到了一个区别,在核心数据中,当我们想要编辑任何东西时,它会加载内存中的所有数据..但如果它加载那么为什么app。不要慢或崩溃。
如何显示存储在文档目录中的(.sqlite)文件的数据。
核心数据用于持久性存储,但它不是数据库(解释我)???。
请为我定义所有内容......
提前致谢。
答案 0 :(得分:2)
- 如果核心数据在后端使用sqlite那么为什么我们使用核心数据而不是sqlite ??
醇>
核心数据并不总是使用SQLite,SQLite是一种商店选项(使用最广泛),还有其他两种类型可用 请检查此coredata store types
- 它如何比sqlite快。
醇>
核心数据不是SQLite的替代品,它就像是SQLite的ORM,它处理所有繁重的工作并提供更简单的界面来使用SQLite,它处理存储连接,查询存储,管理和跟踪内存更改等< / p>
- 我读到了一个区别,在核心数据中,当我们想要编辑任何内容时,它会加载内存中的所有数据。但是如果它加载那么为什么app。不要慢或崩溃。
醇>
这是错误的,核心数据不会将所有内容加载到内存中,除非您以某种方式查询它,通常在您获取实体时它 返回NSManagedObject实例以使用该实体
- 如何显示存储在文档目录中的(.sqlite)文件的数据。
醇>
你在SQLite文件中显示数据是什么意思,你将使用NSPredicate查询你想要的数据,并获得一个对象数组作为响应
.sqlite数据库将存储在app sandbox文件夹中 请检查此sqlite storage
- 核心数据用于持久性存储,但它不是数据库(解释我)???。
醇>
Coredata不是持久性存储它的持久性存储管理器,正如我上面所说,它处理所有繁重的工作,如创建连接,执行查询,将结果转换为NSManagedObject,跟踪对象更改,将其持久化到SQLite和管理加载到内存中的整个对象图
答案 1 :(得分:1)
很难将核心数据与sqlite进行比较,因为这是两种不同的技术。 然而,这里有一些你无法从sqlite中获得的东西。
内置更改跟踪和撤消支持。核心数据提供除基本文本编辑之外的撤消和重做的内置管理。
Easy iCloud存储集成(使用NSManagedDocument
)
与应用程序的控制器层可选集成,以支持用户界面同步。
例如: - 核心数据在iOS上提供NSFetchedResultsController
对象
全面,自动,支持键值编码和键值观察。
您可以通过将NSPredicate
对象与提取请求相关联来创建复杂查询,而不是编写SQL。 NSPredicate
为基本函数,相关子查询和其他高级SQL提供支持。使用Core Data,它还支持正确的Unicode,区域设置感知搜索,排序和正则表达式。
合并政策。 Core Data提供内置版本跟踪和乐观锁定,以支持自动多作者冲突解决。
核心数据可以通过延迟加载对象来减少程序的内存开销。它还支持部分物化的期货和写时复制数据共享。
答案 2 :(得分:0)
核心数据是最好的选择,但如果你想以某种方式将应用程序移植到android或windows并希望保持代码类似,那么你可以选择SQLITE,因为所有主要平台都支持SQLite。而核心数据只是iOS的一部分。关于各种疑问,您可以参考此链接