// // Persistence.swift // Werkout_ios // // Created by Trey Tartt on 6/13/23. // import CoreData import SharedCore struct PersistenceController { static let shared = PersistenceController() private static let runtimeReporter = RuntimeReporter.shared 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 { let nsError = error as NSError runtimeReporter.recordError( "Failed to save preview context", metadata: [ "code": "\(nsError.code)", "domain": nsError.domain ] ) } return result }() let container: NSPersistentContainer init(inMemory: Bool = false) { container = NSPersistentContainer(name: "Werkout_ios") if inMemory { container.persistentStoreDescriptions.first?.url = URL(fileURLWithPath: "/dev/null") } container.loadPersistentStores(completionHandler: { (storeDescription, error) in if let error = error as NSError? { Self.runtimeReporter.recordError( "Failed to load persistent store", metadata: [ "code": "\(error.code)", "domain": error.domain ] ) } }) container.viewContext.automaticallyMergesChangesFromParent = true } }