Базовые данные - это не просто средство сохранения / хранения данных на диск и с диска, как SQL. Основная функция Core Data - предоставить полный уровень модели для дизайна приложения Model-View-Controller, который использует Apple API. Таким образом, Core Data - это, прежде всего, диспетчер графов объектов с опциями постоянства, привязанными к стороне.
Объект-граф - это коллекция живых объектов в памяти. В базовых данных это управляемые объекты. Они называются «управляемыми» объектами, потому что контекст управляемого объекта постоянно наблюдает за объектами, следя за тем, чтобы они находились в состояниях и отношениях, в которых, по словам модели данных, они должны находиться.
Базовые данные предоставляют опцию персистентности, но именно то, что эта опция для любой конкретной реализации, в значительной степени скрыто. Вы даже можете использовать одну и ту же модель данных и управляемые объекты с разными методами постоянства, иногда в одном и том же приложении.
Ключевым отличием от SQL является то, что SQL записывает фактические данные на диск, тогда как Core Data сериализует живые объекты. Когда вы смотрите на хранилище sqlite в Core Data, вы смотрите на объекты, которые были разобраны и «высушены». Очевидно, что для «сублимационной сушки» объектов требуется довольно специфический формат данных в хранилище sqlite, поэтому хранилище базовых данных использует свою собственную пользовательскую схему, которая в значительной степени одинакова независимо от деталей хранилища.
Вот почему вы не можете просто заменить любой старый файл SQL и ожидать, что Core Data его импортирует. Файл SQL представляет собой строки, таблицы и столбцы данных, а не специализированные таблицы, столбцы и строки, используемые для воссоздания замороженных объектов.
Поскольку Core Data - это прежде всего менеджер графов объектов, единственным поддерживаемым и надежным средством импорта данных является создание графов объектов. В случае файла SQL это означает чтение данных SQL с использованием API-интерфейса SQL, а затем создание управляемых объектов из этих данных и их сохранение в постоянном хранилище.
Эта часть - больше работы, но вы экономите время, интегрируя данные в остальную часть приложения, обновляя данные и повышая надежность и удобство обслуживания.