Технология постоянного хранения
Core Data — технология постоянного хранения данных с поддержкой загрузки, сохранения, контроля версий и отмены/повторения операций.
Core Data работает с базами данных SQLite, двоичными файлами и временной памятью.
Модель управляемых объектов определяет сущности, с которыми работает Core Data.
Контекст управляемых объектов представляет собой «точку доступа» к данным. В нем хранится информация об активных управляемых объектах.
Контекст управляемых объектов является частью подсистемы Core Data, обеспечивающей чтение и запись данных.
Мы создали отличное приложение. iBountyHunter успешно загружает данные, необходимые Пете, и позволяет ему легко просмотреть список преступников. Но что делать, когда данные изменятся? Пете нужна новая функциональность. Как она отразится на модели данных? В этой главе вы узнаете, как справиться с изменениями в модели данных и как извлечь пользу из других возможностей Core Data.
Петя хочет сохранять дополнительную информацию.
Петя хочет отслеживать ход своей работы, чтобы получить вознаграждение. Это означает, что мы должны где-то найти место для хранения дня и времени поимки преступника, а затем использовать их при построении представления пойманных преступников.
Мы должны придумать, как обновить приложение iBountyHunter для работы с новыми данными. Просмотрите каждый компонент приложения и напишите, что в нем нужно изменить (если нужно, конечно).
Все начинается с модели объектов.
Итак, мы выяснили, что в сущность Fugitive необходимо добавить несколько новых полей: дату и время, а также признак того, что преступник был пойман. База данных строится по модели данных, поэтому наша задача сводится к обновлению модели данных и включению необходимой информации. Тип date в Core Data включает как дату, так и время, так что в сущность Fugitive достаточно добавить всего два новых свойства.
Необходимые изменения можно быстро внести в среде Xcode.
Core Data обнаруживает несоответствие между базой данных и моделью.
Проблема появилась при добавлении новых полей в сущность Fugitive. Исходная база данных была создана для старой модели, и Core Data понятия не имеет, где взять новые поля. Чтобы избежать опасности повреждения данных, система аварийно завершает наше приложение с выдачей сообщения об ошибке. Это, конечно, хорошо, но как исправить ошибку?
- Дата: 2-01-2015, 18:31