Core Data

作者: iOS_July | 来源:发表于2018-06-11 10:41 被阅读20次

    一、了解

    如果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)")
                }
            }
        }
    

    相关文章

      网友评论

        本文标题:Core Data

        本文链接:https://www.haomeiwen.com/subject/amfisftx.html