📜  coreData 代码行 - Swift (1)

📅  最后修改于: 2023-12-03 15:14:15.381000             🧑  作者: Mango

Core Data代码行 - Swift

简介

Core Data是苹果公司提供的一种数据持久化框架,用于在iOS和Mac应用程序中管理数据模型、持久化数据及操作数据。在Swift语言中,使用Core Data可以轻松地创建、操作和管理数据模型,并将数据持久化到本地存储中。本文将介绍一些常用的Core Data代码行,帮助程序员快速上手使用Core Data和Swift进行数据持久化。

初始化Core Data Stack
lazy var persistentContainer: NSPersistentContainer = {
    let container = NSPersistentContainer(name: "DataModel")
    container.loadPersistentStores(completionHandler: { (storeDescription, error) in
        if let error = error as NSError? {
            fatalError("Unresolved error \(error), \(error.userInfo)")
        }
    })
    return container
}()

lazy var managedContext: NSManagedObjectContext = {
    return persistentContainer.viewContext
}()

以上代码用于初始化Core Data的数据模型和上下文(managed context)。通过NSPersistentContainer类初始化持久化容器,并加载数据存储。如果加载失败,将产生一个致命错误。NSManagedObjectContext实例用于执行数据操作。

创建实体(Entity)对象
guard let entity = NSEntityDescription.entity(forEntityName: "Person", in: managedContext) else {
    fatalError("Failed to initialize entity")
}

let person = NSManagedObject(entity: entity, insertInto: managedContext)

以上代码用于创建一个名为"Person"的实体对象。NSEntityDescription类根据实体名字和NSManagedObjectContext实例来创建实体。NSManagedObject类用于将实体插入到NSManagedObjectContext中。

设置属性(Property)值
person.setValue("John", forKey: "name")
person.setValue(25, forKey: "age")

以上代码用于设置实体对象的属性值。通过setValue(_:forKey:)方法,可以根据属性名称为实体对象设置对应的值。

保存变更数据
do {
    try managedContext.save()
} catch let error as NSError {
    print("Could not save. \(error), \(error.userInfo)")
}

以上代码用于将变更后的数据保存到数据持久化存储中。通过调用save()方法,可以将NSManagedObjectContext实例中的变更写入到本地存储。

查询数据
let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Person")
do {
    let results = try managedContext.fetch(fetchRequest)
    for data in results {
        if let name = data.value(forKey: "name") as? String {
            print("Name: \(name)")
        }
        if let age = data.value(forKey: "age") as? Int {
            print("Age: \(age)")
        }
    }
} catch let error as NSError {
    print("Could not fetch. \(error), \(error.userInfo)")
}

以上代码用于查询数据。通过创建NSFetchRequest实例并指定实体名称,然后使用fetch(_:)方法执行查询操作,并遍历查询结果进行数据提取。

以上是一些常用的Core Data代码行,希望可以帮助你在Swift应用程序中使用Core Data进行数据持久化。更多关于Core Data和Swift的详细信息,请参考官方文档