Swift基础入坑

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互动等高级特性

iOS其他核心库如:Core Location、Core Graphics、Core Animation

库.png

二、启用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)")
            }
        }
    }
上一篇下一篇

猜你喜欢

热点阅读