Хотя основных данных является потомком от Apple Enterprise Object Framework, объектно-реляционного отображения (ORM), который был/тесно связана с реляционной бэкэндом, Core Data является не ОРМ. Это, на самом деле, структура управления графом объектов. Он управляет потенциально очень большим графиком экземпляров объектов, позволяя приложению работать с графиком, который не будет полностью вписываться в память, если при необходимости устранить объекты в и из памяти. Основные данные также управляют ограничениями на свойства и отношения и поддерживают целостность ссылок (например, сохраняют прямую и обратную связь согласованными, когда объекты добавляются/удаляются в/из отношения). Таким образом, базовые данные являются идеальной основой для создания «модельного» компонента архитектуры MVC.
Для реализации управления графом Core Data происходит для использования SQLite в качестве хранилища дисков. Это может были реализованы с использованием другой реляционной базы данных или даже нереляционной базы данных, такой как CouchDB. Как указывали другие, Core Data также может использовать XML или двоичный формат или написанный пользователем атомный формат в качестве бэкэнд (хотя для этих параметров требуется, чтобы весь граф объекта вписывался в память). Если вы заинтересованы в том, как Core Data реализуется на бэкэнд SQLite, вы можете проверить структуру OmniDataObjects OmniGroup, реализацию с открытым исходным кодом подмножества API данных ядра. Рамка BaseTen также является реализацией API базовых данных с использованием PostgreSQL в качестве бэкэнд.
Поскольку основные данные не предназначены для ORM для SQLite, он не может читать произвольную схему SQLite. И наоборот, вы не должны полагаться на возможность читать хранилища данных SQLite Core Data с помощью других инструментов SQLite; схема представляет собой деталь реализации, которая может измениться.
Таким образом, между использованием Core Data или SQLite нет никакого конфликта. Если вам нужна реляционная база данных, используйте SQLite (напрямую или через одну из оберток Objective-C, например FMDB), или сервер реляционной базы данных. Тем не менее, вы все равно можете изучить Core Data для использования в качестве структуры управления графами объектов.В сочетании с классами контроллеров Apple и видными виджетами, совместимыми с ключом, вы можете реализовать полную архитектуру MVC с очень маленьким кодом.
Не могли бы вы добавить ссылку на http://en.wikipedia.org/wiki/Core_Data для всех, не зная, что это такое. – RSabet
Обратите внимание, что базовые данные ** не ** и не должны использоваться в качестве базы данных! –