// // PersistenceController.swift // Notes // // Created by Claude Code on 13/10/2025. // import CoreData struct PersistenceController { static let shared = PersistenceController() static var preview: PersistenceController = { let result = PersistenceController(inMemory: true) let viewContext = result.container.viewContext // Create sample notes for preview for i in 0..<3 { let newNote = Note(context: viewContext) newNote.content = "Sample note \(i + 1)\n\nThis is some sample content for testing." newNote.lastEditDate = Date() } do { try viewContext.save() } catch { let nsError = error as NSError fatalError("Unresolved error \(nsError), \(nsError.userInfo)") } return result }() let container: NSPersistentCloudKitContainer init(inMemory: Bool = false) { container = NSPersistentCloudKitContainer(name: "Notes") if inMemory { container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null") } container.loadPersistentStores(completionHandler: { (storeDescription, error) in if let error = error as NSError? { fatalError("Unresolved error \(error), \(error.userInfo)") } }) container.viewContext.mergePolicy = NSMergeByPropertyStoreTrumpMergePolicy container.viewContext.automaticallyMergesChangesFromParent = true } func save() { let context = container.viewContext if context.hasChanges { do { try context.save() } catch { let nsError = error as NSError print("Unresolved error \(nsError), \(nsError.userInfo)") } } } }