È davvero solo questo:
let kBoat = try? yourContainer.viewContext.count(for: NSFetchRequest(entityName: "Boat"))
"Boat" è solo il nome dell'entità dalla schermata del modello dati:
Qual è il globale yourContainer
?
Per utilizzare i dati di base, a un certo punto della tua app, una sola volta, vai semplicemente
var yourContainer = NSPersistentContainer(name: "stuff")
dove "stuff" è semplicemente il nome del file del modello di dati.
Avresti semplicemente un singleton per questo,
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)") }
}
}
}
Quindi da qualsiasi parte dell'app
core.container
è il tuo contenitore,
Quindi in pratica per ottenere il conteggio di qualsiasi entità, è giusto
let k = try? core.container.viewContext.count(for: NSFetchRequest(entityName: "Boat"))