美文网首页
Swift-CoreData 学习笔记1

Swift-CoreData 学习笔记1

作者: 红袖吾狗 | 来源:发表于2017-11-09 17:15 被阅读17次

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

以上,数据库创建完成。


相关文章

网友评论

      本文标题:Swift-CoreData 学习笔记1

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