41 lines
1.4 KiB
Swift
41 lines
1.4 KiB
Swift
//
|
|
// Persistence.swift
|
|
// Gas Man
|
|
//
|
|
// Created by Kameron Kenny on 3/17/25.
|
|
//
|
|
|
|
import CoreData
|
|
|
|
struct PersistenceController {
|
|
static let shared = PersistenceController()
|
|
|
|
let container: NSPersistentCloudKitContainer
|
|
|
|
init(inMemory: Bool = false) {
|
|
// "GasMan" must match the name of your .xcdatamodeld file.
|
|
container = NSPersistentCloudKitContainer(name: "Gas_Man")
|
|
|
|
|
|
if inMemory {
|
|
container.persistentStoreDescriptions.first?.url = URL(fileURLWithPath: "/dev/null")
|
|
}
|
|
|
|
// Enable CloudKit options if necessary
|
|
guard let description = container.persistentStoreDescriptions.first else {
|
|
fatalError("No persistent store description found.")
|
|
}
|
|
description.setOption(true as NSNumber, forKey: NSPersistentStoreRemoteChangeNotificationPostOptionKey)
|
|
description.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.pro.thelinux.GasMan") // Update with your container ID
|
|
|
|
container.loadPersistentStores { storeDescription, error in
|
|
if let error = error as NSError? {
|
|
fatalError("Unresolved error \(error), \(error.userInfo)")
|
|
}
|
|
}
|
|
|
|
// Automatically merge changes from iCloud
|
|
container.viewContext.automaticallyMergesChangesFromParent = true
|
|
}
|
|
}
|