iOS. Приемы программирования
Шрифт:
6. Теперь система предложит вам выбрать сущности, которые вы хотите экспортировать из своей модели на диск в виде файлов Objective-C. Поскольку мы создали всего одну сущность — Person, ваш список будет выглядеть примерно как на рис. 16.9. Убедитесь, что сущность Person отмечена, а потом нажмите кнопку Next (Далее).
Рис. 16.9. Экспорт сущности Person на диск в качестве управляемого объекта
7. На последнем этапе вам будет предложено
Рис. 16.10. Сохранение сущности на диске
Итак, вы увидите в своем проекте два файла, которые называются Person.h и Person.m. Откройте файл Person.h. Там будет написано следующее:
Файл Person.m реализуется следующим образом:
Вот и все! Мы выполнили реальное определение и реализацию управляемого объекта. В разделе 16.3 мы научимся инстанцировать и сохранять управляемый объект типа Person в контексте управляемых объектов приложения.
Обсуждение
Когда мы создавали в Xcode модель данных с помощью редактора, в ходе этой работы создавали отношения данных, сущности, атрибуты и т. д. Тем не менее, чтобы эту модель можно было использовать в приложении, для нее нужно сгенерировать код. Если просмотреть файлы. h и. m ваших сущностей, то выяснится, что все атрибуты присваиваются динамически. В.m-файле сущностей вы увидите директиву @dynamic. Она сообщает компилятору, что вы выполните запрос каждого атрибута во время исполнения с применением динамического расширения метода.
Код, применяемый во фреймворке Core Data к вашим сущностям, остается совершенно невидимым. На самом деле действительно нет никакой необходимости в том, чтобы программист видел этот код. Все, о чем следует знать, — сущность Person имеет три атрибута: firstName, lastName и age. Этим атрибутам можно присваивать значения (если они являются свойствами, доступными для чтения и записи), их можно сохранять в контекст и загружать из контекста, как будет показано в разделе 16.3.
16.3. Создание и сохранение данных с помощью Core Data
Постановка
Вы создали управляемый объект. После этого вы хотите инстанцировать его и вставить этот экземпляр в контекст Core Data вашего приложения.
Решение
Выполните инструкции, описанные в разделах 16.1 и 16.2. Теперь можно использовать метод класса insertNewObjectForEntityForName: inManagedObjectContext:, относящийся к классу NSEntityDescription, чтобы создать новый объект типа, указанного в первом параметре этого метода. Как только будет создана новая сущность (управляемый объект), ее можно будет изменить, модифицируя ее свойства. После того как все будет готово, сохраните контекст управляемого объекта с помощью метода экземпляра save:, относящегося к контексту управляемых объектов.
Предполагается, что вы уже создали в Xcode универсальное приложение под названием Creating and Saving Data Using Core Data. Теперь, чтобы вставить новый управляемый объект в контекст, выполните следующие шаги.
1. Найдите файл под названием Creating_and_Saving_Data_Using_Core_DataAppDelegate.m.
2. Импортируйте файл Person.h в файл реализации делегата приложения:
Сущность Person мы создали в разделе 16.1.
В методе application: didFinishLaunchingWithOptions: совместно используемого делегата приложения напишем следующий код: