Hallo Leute!
So, die faulen Tage sind vorbei und ich muss Euch einmal wieder mit einer meiner gefürchteten Grundsatzfragen quälen ... Ihr habt sie schon vermisst, gebt's zu
"Darf man NSManagedObjects auch verwenden, ohne dass diese in einem ManagedObjectContext bestehen bzw. in einem Store gespeichert werden?"
Zum Hintergrund:
In meiner App muss ich Dokumenten-Informationen cachen. Diese werden aus den Dateien extrahiert, was aber recht aufwändig ist und daher nicht immer bei Bedarf erfolgen kann (z. B. Previews). Dafür gibt es eine extra Klasse "A", mit entsprechenden Properties und Methoden für den Vergleich / die Sortierung. Ausserdem unterstützt diese Klasse das <NSCoding>-Protokoll und der Cache wurde bisher als Array in einer Plist gespeichert. Aufgrund der potentiell großen Anzahl von Objekten möchte ich nun auf CoreData umstellen ... und es ist für mich der Einstieg in dieses Thema.
Das Problem:
Die Meta-Daten liegen nach Abfrage aus dem persistenten Cache in NSManagedObjects vor. Für den Abgleich mit dem lokalen Filesystem benötige ich sie aber etwas "angereichert" mit den o. g. Methoden der Klasse "A". Nun gibt es m. E. drei Alternativen und ich weiss nicht, welche die beste ist:
Ciao, Mattes
So, die faulen Tage sind vorbei und ich muss Euch einmal wieder mit einer meiner gefürchteten Grundsatzfragen quälen ... Ihr habt sie schon vermisst, gebt's zu
"Darf man NSManagedObjects auch verwenden, ohne dass diese in einem ManagedObjectContext bestehen bzw. in einem Store gespeichert werden?"
Zum Hintergrund:
In meiner App muss ich Dokumenten-Informationen cachen. Diese werden aus den Dateien extrahiert, was aber recht aufwändig ist und daher nicht immer bei Bedarf erfolgen kann (z. B. Previews). Dafür gibt es eine extra Klasse "A", mit entsprechenden Properties und Methoden für den Vergleich / die Sortierung. Ausserdem unterstützt diese Klasse das <NSCoding>-Protokoll und der Cache wurde bisher als Array in einer Plist gespeichert. Aufgrund der potentiell großen Anzahl von Objekten möchte ich nun auf CoreData umstellen ... und es ist für mich der Einstieg in dieses Thema.
Das Problem:
Die Meta-Daten liegen nach Abfrage aus dem persistenten Cache in NSManagedObjects vor. Für den Abgleich mit dem lokalen Filesystem benötige ich sie aber etwas "angereichert" mit den o. g. Methoden der Klasse "A". Nun gibt es m. E. drei Alternativen und ich weiss nicht, welche die beste ist:
- Nach jedem Fetch übertrage ich in einer Schleife alle Objekte des Ergebnis-Arrays in Objekte der Klasse "A" ... erscheint mir unnötig aufwändig, aber dafür vergleiche ich beim Abmischen "Files <-> Cache" nur Objekte der Klasse "A" miteinander.
- Ich definierte eine eigene NSManagedObject-Klasse "B", welche die zusätzlichen Methoden zum Sortieren / Vergleichen erhält. Dann vergleiche ich beim Abmischen "Files <-> Cache" immer Instanzen von A (Files) und B (Cache).
- Auch die lokalen Dateien werden in NSManagedObjects der Klasse B gespeichert. Ich vergleiche nur Objekte der Klasse B ... aber darf man die Klasse NSManagedObject überhaupt "ausserhalb von CoreData" verwenden?
Ciao, Mattes
Diese Seite bleibt aus technischen Gründen unbedruckt.