12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- //
- // Persistence.swift
- // ydnab
- //
- // Created by Andrea Franceschini on 20/09/2020.
- //
- import CoreData
- struct PersistenceController {
- 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
- // }()
- let container: NSPersistentContainer
- init(inMemory: Bool = false) {
- container = NSPersistentContainer(name: "ydnab")
- if inMemory {
- container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null")
- }
- container.loadPersistentStores { (storeDescription, error) in
- if let error = error as NSError? {
- /*
- Typical reasons for an error here include:
- * The parent directory does not exist, cannot be created, or disallows writing.
- * The persistent store is not accessible, due to permissions or data protection when the device is locked.
- * The device is out of space.
- * The store could not be migrated to the current model version.
- Check the error message to determine what the actual problem was.
- */
- fatalError("Unresolved error \(error), \(error.userInfo)")
- }
- }
- }
- }
|