Це дійсно просто так:
let kBoat = try? yourContainer.viewContext.count(for: NSFetchRequest(entityName: "Boat"))
"Човен" - це лише назва об'єкта на екрані вашої моделі даних:
Що таке глобальне yourContainer
?
Щоб користуватися основними даними, у якийсь момент програми, лише один раз, ви просто переходите
var yourContainer = NSPersistentContainer(name: "stuff")
де "stuff" - це просто назва файлу моделі даних.
Ви просто отримаєте для цього сингл,
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)") }
}
}
}
Так з будь-якого місця в додатку
core.container
ваш контейнер,
Тож на практиці отримувати підрахунок будь-якої сутності, це просто
let k = try? core.container.viewContext.count(for: NSFetchRequest(entityName: "Boat"))