Ответ
Core Data поддерживает четыре основных типа хранилищ, каждый для своих сценариев:
| Тип хранилища | Описание | Использование |
|---|---|---|
NSSQLiteStoreType |
Данные в SQLite-базе. По умолчанию. | Продакшен-приложения. Поддерживает миграции, сложные запросы (NSFetchRequest) и работу с iCloud. |
NSBinaryStoreType |
Данные в одном бинарном файле. | Ситуации, где важна скорость чтения всего набора данных, а запросы не нужны. |
NSInMemoryStoreType |
Данные только в оперативной памяти. | Юнит-тестирование, кеширование, временные данные (исчезают после закрытия приложения). |
NSXMLStoreType |
Данные в XML-формате. (Только macOS) | Устарел. Для отладки или совместимости со старыми системами. |
Пример настройки:
// Настройка SQLite хранилища
let storeURL = // ... URL для файла .sqlite
let storeDescription = NSPersistentStoreDescription(url: storeURL)
storeDescription.type = NSSQLiteStoreType
// Настройка In-Memory хранилища (для тестов)
let testStoreDescription = NSPersistentStoreDescription()
testStoreDescription.type = NSInMemoryStoreType
Ключевой вывод: Для большинства production-приложений используется NSSQLiteStoreType из-за баланса производительности, возможностей запросов и поддержки миграций.