2010-12-21 7 views
0

Ich entwickle eine iPad-Anwendung mit Core Data und hoffe, dass jemand etwas über Core Data klären könnte.Was ist die effizienteste Art, Core Data zu verwenden?

Im Moment bearbeite ich meine Tabelle, indem ich eine Abrufanforderung für alle meine Daten in viewDidLoad. Ich würde eher individuelle Abrufanforderungen in meinem tableView:cellForRowAtIndexPath: machen. Kann mir jemand sagen, welches effizienter ist und warum? Mit anderen Worten, ist es viel weniger effizient, viele kleine Anfragen im Gegensatz zu einer großen Anfrage zu machen?

Antwort

4

Ihre Abrufanforderung hat eine Eigenschaft namens fetchBatchSize, die Ihre Abrufanforderung nur zum Abrufen von Daten in Stapeln anfordert. Das bedeutet, dass bei einer Losgröße von 20 nur die ersten 20 Elemente in den Speicher geladen werden. Wenn der Benutzer an 20 vorbei scrollt, werden automatisch weitere 20 Elemente geladen, und so weiter.

Darüber hinaus liefert Apple eine NSFetchedResultsController Klasse, die für die Verwaltung der Präsentation und Bearbeitung Ihrer Daten entwickelt wurde (es funktioniert am besten mit Tabellenansichten, kann aber natürlich mit anderen Arten von View-Controllern arbeiten). Es behandelt eine Menge anderer Optimierungen unter der Haube für Sie (Dinge wie Batch-Abruf, Speicherverwaltung usw.) und bietet als solches eine viel bessere Leistung als Sie selbst erstellen, initiieren und verwalten Sie Ihre Abrufanforderungen.

+0

+1 für 'NSFetchedResultsController', ein unterschätztes Juwel. –

Verwandte Themen