2010-06-10 9 views
5

In meinem Core Data Model (auf iPhone SDK 3.1) habe ich mehrere Entitäten, die mit der gleichen Instanz eines Bildes verknüpft sind. Das Bild selbst wird auch als verwaltetes Objekt gespeichert. Um Speicherplatz zu sparen, versuche ich eine 1-db-Datei für die Bilder und eine weitere db-Datei für alle anderen Objekte zu erstellen.Kerndaten Cross-Store-Beziehung mit abgerufenen Eigenschaften

Lesen Apples Dokumentation und googeln für Tage, die ich zu folgendem Schluss gekommen: - Erstellen 1 Datenmodell, das die Beschreibung aller Entitäten enthält - Verwendung 1 persistenten Speicher Koordinator

  • Verwenden Konfigurationen Bildeinheiten zu speichern in einer anderen Datei (sqlite) als die anderen Entitäten (siehe here)

  • Und da Core Data keine Beziehungen von Instanzen in einem persistenten Speicher zu Instanzen in einem anderen persistenten Speicher unterstützt, uns e „Fetched Eigenschaften“ zu schwach zu schaffen, one-way Beziehungen

Konfigurationen ist recht simpel: assign eine Konfiguration an die Einheit mit den Daten-Modellierer und erklären, welche Konfiguration zu verwenden, wenn ein persistenten Speicher an den Koordinator Hinzufügen . In meinem Fall habe ich den Koordinatoren den Laden hinzugefügt.

Aber hier ist das Problem: beim Abrufen, sagen wir "Benutzer" Objekte aus einem Geschäft, wie verwende ich abgerufene Eigenschaften, um die Bilder zu diesem Benutzer zu laden (und sie dem Benutzerobjekt zuweisen)?

Muss ich eine benutzerdefinierte Accessor-Methode für 'Bilder' im Benutzerobjekt schreiben? Wie (und Wo), um das Prädikat für die abgerufene Eigenschaft anzugeben?

Ich war überzeugt, dass es ein Tutorial oder ein Beispiel geben muss, das dies erklärt (wie es offensichtlich die Art ist, wie Apple vorschlägt, es zu tun). Aber bisher kein Glück.

Irgendeine Idee?

Hoffentlich können wir eine Diskussion zu diesem Thema beginnen. Ich bin mir sicher, dass es andere (schlauere) Möglichkeiten gibt, dies zu lösen ...

Antwort

1

Ich bin mir nicht sicher, ob Ihre Behauptung über Speicherplatz korrekt ist. Ohne Beweise aus dem Test Ihre App, würde ich mit der einfacheren, ein Geschäft, Lösung bleiben. Das heißt ...

Sie müssen einige identifizierende Attribute der Bilder in der Benutzerklasse speichern. Ich würde eine transformable Eigenschaft verwenden, um die Manager-Objekt-IDs zu speichern. Sie fügen eine geholte Eigenschaft im Datenmodellierer hinzu und geben dort auch das Prädikat an.