NSMutableArray mit Stammdaten = WORKS gespeichert, aber nach dem Ändern des Arrays funktioniert nicht

7

Ich habe ein NSManagedObject mit einem NSMutableArray als Attribut:

%Vor%

Im Datenmodell wird es als Transformable deklariert. Ich habe das Value Transformer-Feld wie im Standard (in hellgrau) NSKeyedUnarchiveFromData verlassen.

a1 wird als Teil von TheObject erstellt:

%Vor%

und initialisiert:

%Vor%

Objekte werden zu a1 mit [a1 insertObject:[NSNumber numberWithInt:0] atIndex: 0 ];

hinzugefügt

Dann speichere ich den Kontext nach all dem. Beim Laden des Kontextes werden alle in a1 gespeicherten Elemente gespeichert und geladen. ALL WORKS WELL!

ABER wenn nun a1 ÄNDERUNGEN, zum Beispiel durch Hinzufügen eines weiteren Elements zu a1 oder Ändern eines Elements innerhalb a1 und Speichern und Laden des Kontexts, ist der Inhalt von a1 UNVERÄNDERT (er bleibt genau so wie er vor allen Änderungen war) passiert). CHANGES DON'T WORK!

Übrigens, während die App läuft, werden alle Änderungen an a1 in a1 gespeichert.

Bitte, können Sie mir helfen - was geht hier vor?

Vielen Dank für Ihre Hilfe!

    
user387184 06.08.2010, 18:15
quelle

1 Antwort

20

Änderungen in Ihrem Array werden nicht funktionieren, da Core Data nicht in das Array sehen kann.

Die kurze Antwort ist tue das nicht . Dies ist kein Grund, jemals ein Array (oder ein Wörterbuch für diese Angelegenheit) in Core Data zu speichern.

Erstellen Sie eine neue Entität in Core Data und erstellen Sie eine Beziehung. Wenn die Reihenfolge wichtig ist, fügen Sie ein Bestellattribut in die untergeordnete Tabelle ein.

Speichern Sie Arrays nicht als binäre Objekte.

    
Marcus S. Zarra 07.08.2010, 16:21
quelle

Tags und Links