Zaczęłam trochę pracować z Core Data, a chociaż zorientowałem się, jak go używać w zwykłych aplikacjach Cocoa, wygląda na to, że działa nieco inaczej w Cocoa Touch. W jaki sposób łączysz obiekty z obiektami takimi jak komórki tabeli w Cocoa Touch?Co to jest odpowiednik NSArrayController w Cocoa Touch?
Odpowiedz
Jeśli używasz CoreData na iPhone OS 3.0 lub nowszym, będziesz chciał spojrzeć na NSFetchedResultsController
. Chociaż nie jest tak naprawdę analogiem do NSArrayController
, jest zaprojektowany specjalnie do użycia z UITableView
i jego kontrolerem.
Zapewnia sposób ładowania elementów z trwałości w razie potrzeby, mając na uwadze wydajność i ograniczenia pamięci urządzenia. Nie jest tak czysty, jak zwykłe bindowanie, ale prawdopodobnie zrobi wszystko, czego potrzebujesz (i więcej!) Za pomocą niewielkiej ilości kodu.
Jergason jest poprawny: nie można używać wiązań ani kontrolera NSArrayController z Core Data na iPhonie.
Zamiast tego sprawdź: NSFetchedResultsController, która "służy do efektywnego zarządzania wynikami zwracanymi przez żądanie pobierania danych rdzenia w celu dostarczenia danych dla obiektu UITableView."
Brak widoku 'NSFetchedResultsController', chociaż widzę' UITableViewController'; czy są one analogiczne? W każdym razie mam problem z ustaleniem sposobu dostarczania danych tablicy do kontrolera. Dzięki za wskazówkę dotyczącą niektórych różnic środowiskowych! – Kaji
'NSFetchedResultsController' można znaleźć tutaj: http://developer.apple.com/iphone/library/documentation/CoreData/Reference/NSFetchedResultsController%5FClass/Reference/Reference.html – jbrennan
' NSFetchedResultsController' zasadniczo działa jako klasa pomocnicza do ' UITableView' i 'UITableViewController'. Jest to klasa modelu, która działa z obiektami CoreData i przygotowuje je do wyświetlania w tabeli. – jbrennan