Это действительно так:
let kBoat = try? yourContainer.viewContext.count(for: NSFetchRequest(entityName: "Boat"))
«Лодка» - это просто имя объекта на экране модели данных:
Что такое глобальный yourContainer
?
Чтобы использовать основные данные, в какой-то момент в вашем приложении, только один раз, вы просто идете
var yourContainer = NSPersistentContainer(name: "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"))