import CoreData
import Foundation
class CunoPDFDataHelper {
static let shared = CunoPDFDataHelper()
private lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "CunoDatabase")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
// 增
@discardableResult
func insert(file_name: String,
date: Date = Date(),
isDefault: Bool = false) -> NSManagedObjectID {
let context = persistentContainer.viewContext
let model = CunoPDFModel(context: context)
model.date = date
model.isDefault = isDefault
model.file_name = file_name
// save
do {
try context.save()
print("Saved successfully!")
return model.objectID
} catch {
fatalError("Could not save:\(error)")
}
}
// 查所有
func values() -> [CunoPDFModel] {
let context = persistentContainer.viewContext
let fetchRequest = CunoPDFModel.fetchRequest()
do {
return try context.fetch(fetchRequest).reversed()
} catch {
return []
}
}
// 查单个
func value(id: NSManagedObjectID) -> CunoPDFModel? {
let context = persistentContainer.viewContext
do {
return try context.existingObject(with: id) as? CunoPDFModel
} catch {
return nil
}
}
// 删 根据模型
func remove(model: CunoPDFModel) {
let context = persistentContainer.viewContext
context.delete(model)
do {
try context.save()
} catch {
print("Remove failed.\(model.self)")
}
}
// 删 根据NSManagedObjectID
func delete(id: NSManagedObjectID) {
let context = persistentContainer.viewContext
do {
guard let model = try context.existingObject(with: id) as? CunoPDFModel else { return }
context.delete(model)
try context.save()
} catch {
print("Deletion failed.")
}
}
// 改
func update(id: NSManagedObjectID, file_name: String) {
let context = persistentContainer.viewContext
do {
if let model = try context.existingObject(with: id) as? CunoPDFModel {
model.file_name = file_name
try context.save()
}
} catch {
print("Update failed")
}
}
}
Swift Coredata 基础操作
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 基础操作 1、新建个项目,项目名称NoteList,勾选CoreData选项 (1)新建个project (2)选...
- -barButtonItemClicked方法里 //Class NSEntityDescription*clas...
- 东风不与周郎便,铜雀春深锁二乔!<太阳珊瑚> CoreData 数据持久化框架是Cocoa API的一部分,它允...
- Swift服务端开发系列完整版 一、git拉取主分支最新代码 git官方使用文档 1、推荐指令:git强制覆盖本地...