Annotating and reordering Core Data Persistence Class

This commit is contained in:
Patrick Müller 2020-12-21 18:44:34 +01:00 committed by Patrick Müller
parent 13d11c2c2e
commit a26b62aa4c

View File

@ -8,28 +8,20 @@
import CoreData
struct PersistenceController {
// Singleton
static let shared = PersistenceController()
static var preview: PersistenceController = {
let result = PersistenceController(inMemory: true)
let viewContext = result.container.viewContext
for _ in 0..<10 {
let newItem = Item(context: viewContext)
newItem.timestamp = Date()
}
do {
try viewContext.save()
} catch {
// Replace this implementation with code to handle the error appropriately.
// fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
let nsError = error as NSError
fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
}
return result
}()
// Cloud Kit container
let container: NSPersistentCloudKitContainer
// Managed object context
public var context: NSManagedObjectContext {
get {
return self.container.viewContext
}
}
// Constructor
init(inMemory: Bool = false) {
container = NSPersistentCloudKitContainer(name: "DHBW_Service")
if inMemory {
@ -52,4 +44,23 @@ struct PersistenceController {
}
})
}
// Preview content
static var preview: PersistenceController = {
let result = PersistenceController(inMemory: true)
let viewContext = result.container.viewContext
for _ in 0..<10 {
let newItem = Item(context: viewContext)
newItem.timestamp = Date()
}
do {
try viewContext.save()
} catch {
// Replace this implementation with code to handle the error appropriately.
// fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
let nsError = error as NSError
fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
}
return result
}()
}