Realmente es solo esto:
let kBoat = try? yourContainer.viewContext.count(for: NSFetchRequest(entityName: "Boat"))
"Barco" es solo el nombre de la entidad de la pantalla de su modelo de datos:
¿Qué es lo global yourContainer
?
Para usar datos básicos, en algún momento de su aplicación, solo una vez, simplemente vaya
var yourContainer = NSPersistentContainer(name: "stuff")
donde "cosas" es simplemente el nombre del archivo del modelo de datos.
Simplemente tendrías un singleton para esto,
import CoreData
public let core = Core.shared
public final class Core {
static let shared = Core()
var container: NSPersistentContainer!
private init() {
container = NSPersistentContainer(name: "stuff")
container.loadPersistentStores { storeDescription, error in
if let error = error { print("Error loading... \(error)") }
}
}
func saveContext() {
if container.viewContext.hasChanges {
do { try container.viewContext.save()
} catch { print("Error saving... \(error)") }
}
}
}
Entonces, desde cualquier lugar de la aplicación
core.container
es tu contenedor
Entonces, en la práctica, para obtener el recuento de cualquier entidad, es solo
let k = try? core.container.viewContext.count(for: NSFetchRequest(entityName: "Boat"))