Использовать базовые данные для хранения - в приложениях на основе навигации и окон - iPhone - PullRequest
15 голосов
/ 28 августа 2009

Существует слишком много вариантов создания проектов в XCode,

Но когда мы выбираем Приложение на основе навигации / Приложение на основе окна

Мы видим дополнительную опцию - Использовать базовые данные для хранения.

Мне нужны краткие сведения об этом.

Что в нем нового?

Ответы [ 2 ]

35 голосов
/ 28 августа 2009

Чтобы уточнить, что написал Джергасон. Базовые данные - это объектно-реляционное отображение (ORM), аналогичное Hibernate в мире Java. Он абстрагирует реальную механику хранения данных (таких как файлы SQL или .plist) от вашего кода. Вашему коду просто нужно иметь дело с согласованной объектно-ориентированной средой для извлечения объектов, их обновления и сохранения. Базовые данные поддерживают некоторый уровень транзакций ACID, но не 2-фазные фиксации. На iPhone настройки по умолчанию для Core Data оборачивают базы данных sqlite слоем ORM.

Одним из интересных побочных преимуществ использования Core Data является инструмент для визуального проектирования модели данных и создания классов модели. Если у вас большая модель, это может сэкономить много времени в классах моделей ручного кодирования.

Еще одним интересным преимуществом Core Data является возможность переноса базы данных из одной версии модели в другую. Это очень важно в мире iPhone, так как вы можете изменить свою модель данных с одной версии вашего приложения на другую. Базовые данные предоставляют довольно простой способ переноса постоянных данных из старой модели в новую, без необходимости написания тонны кода миграции. Вы просто определяете карту миграции и добавляете несколько строк кода к вашему делегату приложения, и все конвертируется для вас.

Базовые данные на iPhone предназначены для мобильной среды. Если вы извлекаете все строки в таблице в массив, это на самом деле не вытягивает все в память. Он создает то, что Apple называет ошибочным массивом, который является просто объектом, похожим на NSArray. При доступе к различным элементам массива Core Data извлекает эти объекты (строки) при использовании, а не по запросу. Это экономит память и помогает вашему приложению работать быстрее.

В целом, это довольно полнофункциональный слой ORM, не такой богатый, как Hibernate, но достаточный для этой среды.

17 голосов
/ 28 августа 2009

Базовые данные - это, по сути, способ визуального построения модели, своего рода интерфейсный конструктор для модели. Вы создаете сущности, которые представляют классы моделей, и определяете отношения между ними. Вместо того, чтобы кодировать класс Person, который имеет экземпляр класса адреса, вы можете просто создать их визуально, перетаскивая их мышью. Это намного больше, чем это, но это главная особенность, которую я считаю крутой.

Также см. это документация Apple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...