核心数据基础
决定任何iOS应用程序性能的一个重要因素是其对搜索查询的响应能力。 它响应越快,性能越好。 成功的搜索结果取决于用于存储应用程序数据的数据库的效率。
您可以将Core Data视为在iOS,macOS,tvOS和watchOS应用程序中保存,跟踪,修改和过滤数据的框架,但是Core Data不是数据库。 核心数据使用SQLite作为持久存储,但框架本身不是数据库。 核心数据的功能远不止数据库,例如管理对象图,跟踪数据的变化以及更多其他事情。
- 核心数据可帮助您构建代表应用程序状态的应用程序模型层。 核心数据可以将模型对象的状态持久保存到磁盘。
- 核心数据关注对象,而不是传统的表驱动关系数据库方法。 在存储数据时,实际上是在存储对象的内容,其中对象由继承NSManagedObject类的Objective-C / Swift类表示。 一个典型的应用程序将几个对象一起使用,形成一个对象图。
核心数据和SQLite之间的区别
SQLite
本身就是一个数据库,就像我们拥有MS SQL Server
。 但是CoreData
是类似于ORM
(对象关系模型)的框架,该框架在database
和UI
之间创建一个层。 它speeds-up
交互process
,因为我们不必write queries
,只需使用ORM并让ORM处理后端即可。
核心数据将对象图保存在内存中。 这意味着,只有将记录加载到内存中后,它才能对记录进行操作。 这与在数据库上执行SQL查询有很大不同。 如果要删除数千条记录,Core Data首先需要将每条记录加载到内存中。
另一个限制是核心数据的线程模型。 该框架期望在单个线程上运行。
核心数据具有3个关键对象:
- 托管对象上下文
- 托管对象模型
- 持久性商店协调员
- 永久存储(存储)
设置永久容器
使用NSPersistentContainer设置核心数据栈
在上一教程中,您了解了Core Data堆栈和涉及的类。 在本教程中,我们将学习…… cocoacasts.com
动手使用Xcode
piyush23dez / Swift4_CoreData_Demo
Swift 4中的核心数据基础。通过在 github.com 上创建一个帐户,为piyush23dez / Swift4_CoreData_Demo开发做出了贡献。
核心数据中的实体关系
piyush23dez / Swift4_CoreData_Demo_EntityRelationship
Swift 4中的核心数据实体关系。为piyush23dez / Swift4_CoreData_Demo_EntityRelationship开发做出了贡献 。github.com
- 在导航返回到UINavigationController堆栈中的前一个控制器之前,向用户提示UIAlertView
- 在Swift中使用imagePickerController在同一视图控制器中select两个不同的图像
- UITextfield文本颜色在不在焦点时不会改变
- Apple文档中提供的SimpleFTPSample中存在打开stream错误
- UINavigationController方向更改中的ViewController
- 禁用捏和缩放使用JavaScript的谷歌地图?
- Googlelogin不会返回到我的应用程序
- 无法在iTunes中查看SQLite文件
- 如何在Dev环境下testingSmart App Banner Urls