+/*
+ Copyright (C) 2024 Rubén Beltrán del Río
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see https://captura.tranquil.systems.
+ */
import CoreData
struct PersistenceController {
- static let shared = PersistenceController()
+ static let shared = PersistenceController()
- static var preview: PersistenceController = {
- let result = PersistenceController(inMemory: true)
- return result
- }()
+ static var preview: PersistenceController = {
+ let result = PersistenceController(inMemory: true)
+ return result
+ }()
- let container: NSPersistentCloudKitContainer
+ let container: NSPersistentCloudKitContainer
+
+ init(inMemory: Bool = false) {
+ container = NSPersistentCloudKitContainer(name: "Captura")
- init(inMemory: Bool = false) {
- container = NSPersistentCloudKitContainer(name: "Captura")
-
#if DEBUG
- do {
+ do {
// Use the container to initialize the development schema.
try container.initializeCloudKitSchema(options: [])
- } catch {
+ } catch {
// Handle any errors.
- }
+ }
#endif
-
- if inMemory {
- container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null")
- }
- container.loadPersistentStores(completionHandler: { (storeDescription, error) in
- if let error = error as NSError? {
- // 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.
-
- /*
+
+ if inMemory {
+ container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null")
+ }
+ container.loadPersistentStores(completionHandler: { (storeDescription, error) in
+ if let error = error as NSError? {
+ // 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.
+
+ /*
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 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)")
- }
- })
- container.viewContext.automaticallyMergesChangesFromParent = true
- }
+ fatalError("Unresolved error \(error), \(error.userInfo)")
+ }
+ })
+ container.viewContext.automaticallyMergesChangesFromParent = true
+ }
}