C'est vraiment juste ceci:
let kBoat = try? yourContainer.viewContext.count(for: NSFetchRequest(entityName: "Boat"))
"Bateau" est simplement le nom de l'entité sur votre écran de modèle de données:
Qu'est-ce que le global yourContainer
?
Pour utiliser les données de base, à un moment donné de votre application, une seule fois, il vous suffit d'aller
var yourContainer = NSPersistentContainer(name: "stuff")
où «stuff» est simplement le nom du fichier de modèle de données.
Vous auriez simplement un singleton pour ça,
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)") }
}
}
}
Donc de n'importe où dans l'application
core.container
est votre conteneur,
Donc, dans la pratique, pour obtenir le décompte de n'importe quelle entité, c'est juste
let k = try? core.container.viewContext.count(for: NSFetchRequest(entityName: "Boat"))