5

Stavo iniziando a lavorare con Core Data un po ', e mentre ho capito come usarlo nelle normali applicazioni Cocoa, sembra che funzioni in modo leggermente diverso in Cocoa Touch. Come si legano le entità a oggetti come le celle di una tabella in Cocoa Touch?Qual è il Cocoa Touch equivalente a NSArrayController?

risposta

4

Se stai utilizzando CoreData su iPhone OS 3.0 e versioni successive, ti consigliamo di guardare NSFetchedResultsController. Sebbene non sia realmente un analogo a NSArrayController, è stato progettato specificamente per essere utilizzato con UITableView e il suo controller.

Fornisce un modo per caricare elementi dalla persistenza secondo necessità, tenendo presenti le prestazioni e i vincoli di memoria del dispositivo. Non è così semplice come le cose semplicemente vincolanti, ma probabilmente farà tutto il necessario (e anche di più!) Con una piccola quantità di codice.

+0

Non vedi 'NSFetchedResultsController', anche se vedo un' UITableViewController'; sono analoghi? In ogni caso, ho difficoltà a capire come inviare i dati dell'array al controller. Grazie per il puntatore su alcune delle differenze ambientali! – Kaji

+0

'NSFetchedResultsController' può essere trovato qui: http://developer.apple.com/iphone/library/documentation/CoreData/Reference/NSFetchedResultsController%5FClass/Reference/Reference.html – jbrennan

+0

' NSFetchedResultsController' fondamentalmente funziona come una classe helper per ' UITableView' e 'UITableViewController'. È una classe del modello che funziona con gli oggetti CoreData e li prepara per la visualizzazione in una tabella. – jbrennan

6

Sfortunatamente, i collegamenti non sono supportati nel sistema operativo dell'iPhone. Vedi la pagina this nella documentazione per gli sviluppatori Apple.

Credo che questo significhi che non è possibile utilizzare NSArrayController nel sistema operativo dell'iPhone.

+0

intendi per fortuna. I controller di array sono orribili e confondono la configurazione. – SpaceDog

1

Jergason è corretto: non è possibile utilizzare binding o NSArrayController con Core Data su iPhone.

Invece, controlla NSFetchedResultsController che "è destinato a gestire in modo efficiente i risultati restituiti da una richiesta di recupero dei dati di base per fornire dati per un oggetto UITableView."