您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页Swift-CoreData 学习笔记1

Swift-CoreData 学习笔记1

来源:二三四教育网

1.Core Data结构

  • NSManagedObject 是我们的数据模型,也就是我们的存储对象。由对应的NSManagedObjectContext管理着,我们可以直接在object中获取对应的context对象unowned(unsafe) open var managedObjectContext: NSManagedObjectContext? { get }
  • NSManagedObjectContext 被管理对象的上下文。
  • NSPersistenStoreCoordinator 模型和数据库之间的桥梁。
  • NSPersistentStore 存储对象,实现和数据库SQLite的交互。

2.初始操作

  • 导入CoreData库import CoreData
  • 创建数据库模版,即创建Data Model文件,后缀为xcdatamodeld
    img_1.png
  • 这里创建一张表Entity,命名为‘Text’。添加一个字段Attribute,命名为‘text’
    img_2.png
var context: NSManagedObjectContext?
    // MARK:数据库相关
    func setupCoreData() {
        // 获取数据库模版的URL,‘momd’是xcdatamodeld文件编译后的后缀,但是这里不能直接用xcdatamodeld当成后缀来读取,否则为nil
        let url = Bundle.main.url(forResource: "TextModel", withExtension: "momd")
        let objectModel = NSManagedObjectModel(contentsOf: url!)
        let cooridate = NSPersistentStoreCoordinator(managedObjectModel: objectModel!)
        let docPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
        
        print(">> \(docPath)")
        
        let sqlPath = docPath + "/myText.sqlite"
        let sqliteURL = URL.init(fileURLWithPath: sqlPath)
        do {
            try cooridate.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: sqliteURL, options: nil)
        } catch let error {
            print(error)
        }
        
        context = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
        context?.persistentStoreCoordinator = cooridate
    }

成功执行上面的代码后就会生成一个数据库文件以及两个配置文件。


img_3.png

以上,数据库创建完成。


  • 参考文章:

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务