Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

NSManagedObjectModel *managedObjectModel;

NSPersistentStoreCoordinator *persistentStoreCoordinator;

Вы уже понимаете, что означают эти свойства, — они были описаны ранее в данной главе. Контекст — наш игровой стол, модель — схема базы данных, а координатор — объект, опосредующий сохранение контекста на диске. Все просто. Теперь переходим к изучению основных разделов этой главы.

16.1. Создание модели Core Data с помощью Xcode

Постановка задачи

Требуется

визуально спроектировать в Xcode модель данных для вашего приложения iOS.

Решение

Следуя инструкциям из введения к данной главе, создайте проект Core Data. Потом найдите в пакете вашего приложения файл с расширением xcdatamodel и откройте его в визуальном редакторе данных (рис. 16.2).

Рис. 16.2. Визуальный редактор данных в Xcode

Обсуждение

Визуальный редактор данных Xcode — потрясающий инструмент, позволяющий программисту с легкостью проектировать модель данных для своего приложения. Прежде чем приступить к работе с этим инструментом, необходимо усвоить два очень важных определения:

• сущность (Entity) — аналогична таблице базы данных;

 атрибут (Attribute) — аналогичен столбцу в базе данных.

Позже сущности станут объектами (управляемыми объектами). Это произойдет после того, как мы сгенерируем код на базе нашей объектной модели. Об этом пойдет речь в разделе 16.2. В текущем разделе мы сосредоточимся на создании модели данных в визуальном редакторе.

В нижней части окна редактора найдите кнопку +. Щелкните правой кнопкой мыши, удерживая указатель на этом плюсике, а потом выберите из контекстного меню вариант Add Entity (Добавить сущность) (рис. 16.3).

Рис. 16.3. Добавление новой сущности к модели данных

Сущность, которую вы создали, сразу же после создания будет находиться в состоянии, позволяющем немедленно ее переименовать. Измените название этой сущности на Person (Контакт) (рис. 16.4).

Рис. 16.4. Изменение имени новой сущности на Person

Выберите сущность Person, потом щелкните на + в области Attributes (Атрибуты) и создайте для сущности три следующих атрибута (рис. 16.5):

• firstName (типа String);

• lastName (типа String);

• age (типа Integer 32).

Рис. 16.5. Мы добавили три атрибута к сущности Person

В редакторе модели данных выберите из меню View (Вид) в Xcode команду Utilities — Show Utilities (Вспомогательная

область — Отобразить вспомогательные возможности). В правой части Xcode откроется вспомогательная область. В верхней части этой области нажмите кнопку Data Model Inspector (Инспектор модели данных) и убедитесь, что не забыли щелкнуть на только что созданной нами сущности Person (Контакт). На данном этапе инспектор модели данных заполнится элементами, относящимися к сущности Person (рис. 16.6).

Рис. 16.6. Инспектор модели данных отображается в правой части окна Xcode

Теперь щелкните на атрибутах firstName, lastName и age сущности Person. Убедитесь, что атрибуты firstName и lastName не являются опциональными — флажок Optional должен быть снят. При этом для атрибута age флажок Optional должен быть установлен.

Итак, мы создали модель. Выполните команду File — Save (Файл — Сохранить), чтобы убедиться, что сделанные изменения сохранены. О том, как сгенерировать код на базе только что созданной вами модели, рассказывается в разделе 16.2.

16.2. Генерирование файлов классов для сущностей Core Data

Постановка задачи

Вы выполнили все инструкции из раздела 16.1. Теперь требуется научиться создавать код на основании имеющейся объектной модели.

Решение

Выполните следующие шаги.

1. В Xcode найдите созданный для вашего приложения файл с расширением xcdatamodel. Он был заготовлен на этапе создания самого приложения в Xcode. Щелкните на этом файле — и вы должны увидеть, как в правой части окна Xcode открывается редактор.

2. Выберите сущность Person, созданную нами ранее (см. раздел 16.1).

3. Выполните в Xcode команду File — New File (Файл — Новый файл).

4. В диалоговом окне New File (Новый файл) убедитесь, что выбрали iOS в качестве основной категории, а Core Data — в качестве подкатегории. Потом укажите в правой части окна элемент NSManagedObject subclass (Подкласс NSManagedObject) и нажмите Next (Далее) (рис. 16.7).

Рис. 16.7. Создание в Xcode подкласса управляемого объекта

5. На следующем экране выберите модель управляемого объекта, которую вы хотите сохранить на диске, и отметьте ее флажком. Сделав это, нажмите кнопку Next (Далее) (рис. 16.8).

Рис. 16.8. Выбор модели управляемого объекта для сохранения на диске

Если в вашем проекте всего одна модель, то и в списке вы увидите всего одну модель управляемого объекта. Но на рис. 16.8 мы видим много моделей. Дело в том, что в моем рабочем пространстве в Xcode присутствует множество проектов и каждый из них имеет свою модель.

Поделиться:
Популярные книги

Рамакришна И Его Ученики

Ишервуд Кристофер
Детективы:
триллеры
6.25
рейтинг книги
Рамакришна И Его Ученики

История России. XX век. Как Россия шла к ХХ веку. От начала царствования Николая II до конца Гражданской войны (1894–1922). Том I

Зубов Андрей Борисович
История России. Новый взгляд
Научно-образовательная:
история
5.00
рейтинг книги
История России. XX век. Как Россия шла к ХХ веку. От начала царствования Николая II до конца Гражданской войны (1894–1922). Том I

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.75
рейтинг книги
Газлайтер. Том 15

Собрание пьес. Книга 1

Сологуб Фёдор Кузьмич
Драматургия:
драма
5.00
рейтинг книги
Собрание пьес. Книга 1

Железный поток. Морская душа. Зеленый луч

Серафимович Александр Серафимович
Библиотека мировой литературы для детей
Проза:
советская классическая проза
6.25
рейтинг книги
Железный поток. Морская душа. Зеленый луч

Ключ Времен

Прозоров Александр Дмитриевич
5. Ведун
Фантастика:
фэнтези
альтернативная история
8.56
рейтинг книги
Ключ Времен

Улав, сын Аудуна из Хествикена

Унсет Сигрид
1. Улав, сын Аудуна
Проза:
классическая проза
историческая проза
6.33
рейтинг книги
Улав, сын Аудуна из Хествикена

Каторга. Преступники

Дорошевич Влас Михайлович
1. Русская классика XX века
Проза:
русская классическая проза
6.25
рейтинг книги
Каторга. Преступники

Медведь и Дракон

Клэнси Том
10. Джек Райан
Детективы:
триллеры
5.75
рейтинг книги
Медведь и Дракон

Война: ускоренная жизнь

Сомов Константин Константинович
Проза:
военная проза
5.00
рейтинг книги
Война: ускоренная жизнь

Побережье цифрового мира

Инин Дмитрий
2. Негодяй Аллара
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Побережье цифрового мира

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия

Пограничная река

Каменистый Артем
1. Пограничная река
Фантастика:
научная фантастика
боевая фантастика
9.23
рейтинг книги
Пограничная река

Первый после бога

Ахманов Михаил Сергеевич
2. Зов из бездны
Фантастика:
научная фантастика
5.00
рейтинг книги
Первый после бога