Core Data
2018-06-11 本文已影响20人
iOS_July
一、了解
如果app的数据存储于数组,新添加的数据也会随着app的退出而消失
这时候,就需要用到数据保存
使用Core Data
把数据保存到硬盘,叫作数据的 持久化(Persistence)
例如:
文件: 工程里的info.plist文件,它用于保存工程的配置
场景:更新频率低、离散、非结构化的文本型数据
推荐:UserDefault
数据库:成千上万条的记录
场景:更新频繁、数据量大、包含大文件(图片、视频等)
常用SQLite、Realm
常见数据库:关系数据库
SQLite是一种轻量型数据库,占内存小,速度快,非常适合移动设备,嵌入式设备使用
Core Data是iOS/macOS平台的,官方数据库框架,封装了SQLite的基础操作,增加了面向对象的特性、一些比如TableView互动等高级特性
库.pngiOS其他核心库如:Core Location、Core Graphics、Core Animation
二、启用Core Data
最快的方法就是:
新建一个工程,启用Core Data,Xcode可以自动生成相关模版代码(位于AppDelegate.swift)以及模型文件
@Core Data stack--持久化容器
import CoreData
// MARK: - Core Data stack
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "CareDataDemo")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
@Core Data stack--保存
// MARK: - Core Data Saving support
func saveContext () {
let context = persistentContainer.viewContext
if context.hasChanges {
do {
try context.save()
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
}