É realmente apenas isso:
let kBoat = try? yourContainer.viewContext.count(for: NSFetchRequest(entityName: "Boat"))
"Barco" é apenas o nome da entidade na tela do seu modelo de dados:
O que é global yourContainer
?
Para usar os dados principais, em algum momento do seu aplicativo, apenas uma vez, basta acessar
var yourContainer = NSPersistentContainer(name: "stuff")
onde "material" é simplesmente o nome do arquivo do modelo de dados.
Você simplesmente teria um singleton para isso,
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)") }
}
}
}
Então, de qualquer lugar do aplicativo
core.container
é o seu contêiner,
Portanto, na prática, para obter a contagem de qualquer entidade, é apenas
let k = try? core.container.viewContext.count(for: NSFetchRequest(entityName: "Boat"))