swift 核心数据基本类上下文管理器。 #CoreData #Swift
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 核心数据基本类上下文管理器。 #CoreData #Swift相关的知识,希望对你有一定的参考价值。
import UIKit
import CoreData
class DataController {
private init() {}
static var applicationDocumentsDerictory: URL = {
let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return urls[urls.count-1]
}()
static var managedObjectModel: NSManagedObjectModel = {
let resourceName = <#.xcdatamodeld file name#>
let modelURL = Bundle.main.url(forResource: resourceName, withExtension: "momd")
assert(modelURL != nil, "No such resource \(resourceName)")
let objectModel = NSManagedObjectModel(contentsOf: modelURL!)
assert(objectModel != nil, "Failed to create managed object model")
return objectModel!
}()
static var persistentStoreCoordinator: NSPersistentStoreCoordinator = {
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel)
let url = applicationDocumentsDerictory.appendingPathComponent(<#".sqlite file name"#>)
do {
try coordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: nil)
} catch {
// Handle error
abort()
}
return coordinator
}()
static var managedObjectContext: NSManagedObjectContext = {
let coordinator = persistentStoreCoordinator
var managedObjectContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()
static func saveContext() {
if managedObjectContext.hasChanges {
do {
try managedObjectContext.save()
} catch (let error) {
print(error)
abort()
}
}
}
}
以上是关于swift 核心数据基本类上下文管理器。 #CoreData #Swift的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 核心数据“实体”错误:`使用未声明的类型`
Swift 正式开源, 包括 Swift 核心库和包管理器
Python核心技术与实战——二一|巧用上下文管理器和with语句精简代码
SQLAlchemy 核心连接上下文管理器
如何在托管对象上下文之外使用核心数据对象?
Swift:在后台同步核心数据对象