Ответ
Core Data — это фреймворк Apple для управления объектной моделью и сохранения данных, а не просто ORM. Он работает с графом объектов, обеспечивая валидацию, откат изменений, миграцию схемы и синхронизацию (включая iCloud).
Ключевые компоненты:
NSManagedObjectModel— описывает схему данных (сущности, атрибуты, связи).NSPersistentStoreCoordinator— связывает модель с хранилищем (SQLite, XML, бинарное, in-memory).NSManagedObjectContext— «рабочая область» для создания, изменения и удаления управляемых объектов.
Пример сохранения:
let context = persistentContainer.viewContext
let newUser = User(context: context)
newUser.name = "John"
do {
try context.save()
} catch {
print("Ошибка сохранения: (error)")
}
Преимущества:
- Нативная интеграция с Cocoa-биндингами и
NSFetchedResultsController. - Ленивая загрузка объектов и автоматическое управление faulting.
- Встроенная поддержка Undo/Redo.
Недостатки:
- Сложность настройки для нереляционных структур.
- Производительность на очень больших наборах данных может требовать тонкой настройки.
- Многопоточность требует использования отдельных контекстов (
NSManagedObjectContext).