Я начал немного работать с Core Data, и хотя я понял, как использовать его в обычных приложениях Cocoa, кажется, что в Cocoa Touch он работает немного по-другому. Как вы связываете сущности с такими объектами, как ячейки таблицы в Cocoa Touch?
Что такое Cocoa Touch, эквивалентное NSArrayController?
Ответы (3)
Если вы используете CoreData на iPhone OS 3.0 и более поздних версиях, вам следует взглянуть на NSFetchedResultsController
. Хотя на самом деле это не аналог NSArrayController
, он разработан специально для использования с UITableView
и его контроллером.
Он предоставляет способ загрузки элементов из хранилища по мере необходимости с учетом ограничений производительности и памяти устройства. Это не так чисто, как просто связывание вещей, но, вероятно, сделает все, что вам нужно (и даже больше!) с небольшим количеством кода.
NSFetchedResultsController
, хотя вижу UITableViewController
; они аналоги? В любом случае, мне трудно понять, как передавать данные массива в контроллер. Спасибо за указание на некоторые различия в окружающей среде!
- person Kaji; 28.11.2009
NSFetchedResultsController
можно найти здесь: разработчик. apple.com/iphone/library/documentation/CoreData/
- person jbrennan; 28.11.2009
NSFetchedResultsController
в основном работает как вспомогательный класс для UITableView
и UITableViewController
. Это класс модели, который работает с вашими объектами CoreData и подготавливает их к отображению в таблице.
- person jbrennan; 28.11.2009
К сожалению, привязки не поддерживаются в ОС iPhone. См. эту страницу в Apple Developer. документы
Я считаю, что это означает, что вы не можете использовать NSArrayController в ОС iPhone.
Джергасон прав: вы не можете использовать привязки или NSArrayController с Core Data на iPhone.
Вместо этого проверьте NSFetchedResultsController, который «предназначен для эффективного управления результатами, возвращаемыми из запроса на выборку основных данных, для предоставления данных для объекта UITableView».