From a26b62aa4c55564f98b9bce61e788d9d574a0a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Mu=CC=88ller?= Date: Mon, 21 Dec 2020 18:44:34 +0100 Subject: [PATCH] Annotating and reordering Core Data Persistence Class --- DHBW-Service/Persistence.swift | 47 +++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/DHBW-Service/Persistence.swift b/DHBW-Service/Persistence.swift index b8facdb..0e37f55 100644 --- a/DHBW-Service/Persistence.swift +++ b/DHBW-Service/Persistence.swift @@ -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 + }() }