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 ];
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!
Ä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.
Tags und Links xcode core-data nsmutablearray