Какие типы хранилищ поддерживает CoreData?
Суть
Тип хранилища задаётся при подключении store к координатору (NSPersistentStoreDescription.type). На iOS доступны три встроенных:
- SQLite (
NSSQLiteStoreType) — по умолчанию и почти всегда. Данные лежат в файле.sqlite(плюс-walи-shmпри WAL-журнале). Единственный тип, который поддерживает ленивую загрузку,fetchBatchSize, индексы и batch-запросы: fetch выполняется как SQL, в память поднимается только нужное. - Binary (
NSBinaryStoreType) — весь граф сериализуется в один бинарный файл и целиком загружается в память. Атомарная запись, но без частичной загрузки; подходит для маленьких наборов данных. - In-Memory (
NSInMemoryStoreType) — ничего не пишется на диск. Для unit-тестов, превью SwiftUI и временных кэшей.
XML (NSXMLStoreType) существует только на macOS — человекочитаемый формат для отладки; на iOS его нет.
Кроме встроенных, можно написать собственное хранилище — подкласс NSIncrementalStore (например, поверх REST API или другой БД).
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep