Поместить элементы из сущности Core Data в NSOutlineView программно? - PullRequest
0 голосов
/ 25 августа 2010

Извините, если это кажется глупым вопросом - я любитель, когда дело доходит до Objective-C и Какао, и еще менее осведомлен, когда речь идет об использовании Core Data.

Итак, вот ситуация: у меня есть NSOutlineView, который я уже заполнил несколькими элементами вручную с помощью NSTreeController. Теперь мне нужно взять элементы в одной из моих сущностей базовых данных и добавить их к текущему содержимому NSOutlineView.

Очевидно, что это выходит за рамки возможностей привязок, поэтому это нужно будет сделать программно. Что я должен делать? Я предполагаю, что мне нужно сделать выборку, а затем перебрать возвращенные элементы, добавив каждый из них в представление структуры. Это правильно? Если так, кто-нибудь сможет показать пример того, как это делается?

Спасибо!

1 Ответ

0 голосов
/ 25 августа 2010

Создайте NSFetchRequest с NSPredicate, который получает только тех, чей «родитель» равен nil (объекты корневого / верхнего уровня). Сортируйте их по некоторому атрибуту, который имеет смысл (поскольку результаты выборки будут неупорядоченной коллекцией - NSSet). Затем реализуйте NSOutlineViewDataSource, чтобы смешивать / смешивать информацию так, как вы считаете нужным, поскольку она предоставляется в схему.

Осторожно: лучше всего кешировать ваши результаты, наблюдая за изменениями и обновляя кеш при каждом изменении.

...