To naprawdę tylko to:
let kBoat = try? yourContainer.viewContext.count(for: NSFetchRequest(entityName: "Boat"))
„Łódź” to po prostu nazwa jednostki z ekranu Twojego modelu danych:
Co to jest globalne yourContainer
?
Aby skorzystać z podstawowych danych, w pewnym momencie aplikacji, tylko raz, po prostu idziesz
var yourContainer = NSPersistentContainer(name: "stuff")
gdzie „rzeczy” to po prostu nazwa pliku modelu danych.
Po prostu miałbyś do tego singletona,
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)") }
}
}
}
Czyli z dowolnego miejsca w aplikacji
core.container
jest twoim pojemnikiem,
Więc w praktyce, aby policzyć dowolną jednostkę, wystarczy
let k = try? core.container.viewContext.count(for: NSFetchRequest(entityName: "Boat"))