Что такое Cocoa Touch, эквивалентное NSArrayController?

Я начал немного работать с Core Data, и хотя я понял, как использовать его в обычных приложениях Cocoa, кажется, что в Cocoa Touch он работает немного по-другому. Как вы связываете сущности с такими объектами, как ячейки таблицы в Cocoa Touch?


person Kaji    schedule 28.11.2009    source источник


Ответы (3)


Если вы используете CoreData на iPhone OS 3.0 и более поздних версиях, вам следует взглянуть на NSFetchedResultsController. Хотя на самом деле это не аналог NSArrayController, он разработан специально для использования с UITableView и его контроллером.

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

person jbrennan    schedule 28.11.2009
comment
Не вижу NSFetchedResultsController, хотя вижу UITableViewController; они аналоги? В любом случае, мне трудно понять, как передавать данные массива в контроллер. Спасибо за указание на некоторые различия в окружающей среде! - person Kaji; 28.11.2009
comment
NSFetchedResultsController можно найти здесь: разработчик. apple.com/iphone/library/documentation/CoreData/ - person jbrennan; 28.11.2009
comment
NSFetchedResultsController в основном работает как вспомогательный класс для UITableView и UITableViewController. Это класс модели, который работает с вашими объектами CoreData и подготавливает их к отображению в таблице. - person jbrennan; 28.11.2009

К сожалению, привязки не поддерживаются в ОС iPhone. См. эту страницу в Apple Developer. документы

Я считаю, что это означает, что вы не можете использовать NSArrayController в ОС iPhone.

person jergason    schedule 28.11.2009
comment
вы имеете в виду к счастью. ArrayControllers ужасны и сложны в настройке. - person Duck; 25.10.2014

Джергасон прав: вы не можете использовать привязки или NSArrayController с Core Data на iPhone.

Вместо этого проверьте NSFetchedResultsController, который «предназначен для эффективного управления результатами, возвращаемыми из запроса на выборку основных данных, для предоставления данных для объекта UITableView».

person gerry3    schedule 28.11.2009