Где находится основной объект данных в моей библиотеке Interface Builder? - PullRequest
0 голосов
/ 17 января 2011

Я пытаюсь использовать базовый объект данных в моем приложении, перетаскивая его в файл пера в Интерфейсном Разработчике, но его нет в моей библиотеке элементов управления.

Любая идея, как получить его там?

Спасибо

Грэм

Ответы [ 2 ]

2 голосов
/ 30 мая 2015

Основной объект данных не существует в библиотеке какао в Xcode 6.2. Вместо этого вы можете использовать ArrayController.

1) Создайте новый проект в Xcode: введите имя проекта и отметьте поле с надписью Core Data.

2) В файлах вашего проекта выберите файл .xcdatamodeld и в настройке компоновщика интерфейса an entity, который похож на класс Cocoa с некоторыми @properties:

enter image description here

Нажмите Add Entity внизу окна. На изображении выше сущность называется Book. Эта строка сначала будет содержать Entity вместо Book. Дважды щелкните Entity и введите Book.

Нажмите + в области атрибутов, чтобы добавить атрибуты и их типы. В крайнем правом углу (с самым правым значком, выбранным вверху) вы можете включить или отключить другие свойства для атрибута, например, снимите флажок необязательно .

Насколько я могу судить, настройка сущности аналогична созданию класса Objective-C с набором @ properties.

3) Выберите MainMenu.xib и перетащите TableView (сделайте его основанным на ячейке) и пару квадратных кнопок в окно:

enter image description here

Для кнопок в инспекторе атрибутов рядом с изображением выберите NSAddTemplate и NSRemoveTemplate соответственно. В TableView дважды щелкните заголовки столбцов и введите имена столбцов.

Как только вы настроите вид, перетащите ArrayController из библиотеки в док-станцию. В Identity Inspector измените значение параметра Label для ArrayController на BookController, как показано на рисунке выше. Метка позволяет вам ссылаться на этот конкретный ArrayController, что удобно, если в вашем xib-файле есть несколько ArrayController.

4) Затем в инспекторе атрибутов укажите сущность или тип объекта, который ArrayController будет хранить и управлять:

enter image description here

Также проверьте Prepares Content. Это приведет к загрузке сохраненных на диск данных в TableView при запуске TableView.

5) С выбранным ArrayController перейдите в Инспектор привязок и в разделе Parameters привяжите ArrayController к AppDelegate и для ключевого пути введите managedObjectContext. УправляемыйObjectContext отвечает за запись данных на диск:

enter image description here

6) Затем свяжите столбцы TableView с ArrayController. Убедитесь, что вы выбрали столбец Book Title:

enter image description here

В инспекторе привязок в привязке значения привязайте к BookController (метка, присвоенная ArrayController). Ключ контроллера arrangedObjects - это отсортированный массив всех объектов в ArrayController. И, указав ключевой путь для модели как title, вы указываете столбцу отображать заголовок каждого объекта вранжированный объект.

Выберите столбец Author в NSTableView и настройте привязку аналогичным образом.

7) Выберите квадратную кнопку + и Ctrl + перетащите с кнопки на ArrayController. После освобождения выберите add: во всплывающем меню. Затем выберите квадратную кнопку - и Ctrl + перетащите с кнопки на ArrayController. После освобождения выберите remove: во всплывающем меню.

Наконец, установите привязку для квадратной кнопки -, которая отключит кнопку, если в TableView нет элементов, которые нужно удалить:

enter image description here

Запустите приложение и используйте кнопку +, чтобы вставить записи в TableView. Я замечаю, что если я остановлю приложение с помощью кнопки Xcode Stop, данные, введенные в TableView, не сохранятся на диск. Вместо этого я должен выбрать «Выход» под именем приложения в строке меню, чтобы сохранить данные на диск.

2 голосов
/ 18 января 2011

Я заметил, что это iOS-теги, поэтому плохие новости: поддержка Core Data в Interface Builder существует только для Mac, но не для iDevices (пока). Создайте наконечник MacOS X, а не ios, и вы увидите «Управляемый «Контекст объекта» и «Базовый объект данных» в библиотеке. Поддержка основных данных IB интенсивно использует привязки какао, которые также доступны только в самой MacOS (пока); без привязок не имеет смысла связывать объекты модели в кончике.

Чтобы увидеть, как использовать основные данные без настройки в IB, создайте новый проект iOS с шаблоном «Навигационное приложение» и установите флажок «использовать основные данные для хранения». Мясо находится в делегате приложения и классах RootViewController, которые оно создает; перья просто содержат VC и UIViews, как обычно.

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