Сохранить и изменить порядок записей базовых данных - PullRequest
1 голос
/ 07 мая 2009

Я следовал учебному пособию по основным данным на

http://macresearch.org/cocoa-scientists-part-xxiii-itunes-ifying-core-data-app

Готовое приложение отображает данные в NSTableView. Сохраняется ли порядок данных? И есть ли способ, позволяющий перетаскивать перестановки в порядке записей? Я думаю о чем-то похожем на то, как iTunes позволяет упорядочивать песни в списке воспроизведения с помощью перетаскивания.

Ответы [ 3 ]

4 голосов
/ 07 мая 2009

Базовые данные ожидают, что вы определите собственную сортировку с помощью NSSortDescriptors, поэтому вам придется добавить свой собственный атрибут для отслеживания настраиваемого пользователем индекса заказа, подобного этому. Мне посчастливилось использовать KVO в ключевом пути отношений сущности (изнутри самого управляемого объекта), чтобы при необходимости изменить порядок при добавлении или удалении новых объектов отношений.

Чтобы выполнить перестановку, вам понадобятся методы перетаскивания NSTableView и при необходимости сбросьте атрибут индекса заказа. Документация NSTableView должна объяснить это очень хорошо.

0 голосов
/ 24 февраля 2010

Вместо использования целого числа я использую фактическую дату и время (вид метки времени) создания. Это позволит убедиться, что поле вашего заказа не продублировано.

Затем, когда я перемещаю предмет вверх / вниз, я просто меняю их поле заказа. Имеет относительно низкую стоимость обработки.

Когда я выбираю данные, я просто выбираю элементы в порядке поля am.

0 голосов
/ 07 мая 2009

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

При реализации перетаскивания необходимо обновить порядок элементов.

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