NSMutableArray gespeichert mit core data = FUNKTIONIERT, aber nach dem ändern der array FUNKTIONIERT NICHT
Habe ich ein NSManagedObject mit einem NSMutableArray als Attribut:
@interface MyObject : NSManagedObject
{
}
@property (nonatomic, retain) id a1;
In das Daten Modell es ist deklariert als Transformable
. Ich verließ die Wert-Transformator-Feld wie es ist mit der default (in hellgrau) NSKeyedUnarchiveFromData
.
a1 ist erstellt, als Teil von theObject:
MyObject *theObject = [NSEntityDescription insertNewObjectForEntityForName:@"MyObject" inManagedObjectContext: myManagedObjectContext];
und initialisiert:
a1 = [[NSMutableArray alloc] init];
Objekte Hinzugefügt werden a1 mit [a1 insertObject:[NSNumber numberWithInt:0] atIndex: 0 ];
Dann Speichere ich den Zusammenhang nach, dass alle. Laden der Kontext alle Elemente gespeichert, die in a1 gespeichert und geladen werden. ALL WORKS WELL!
ABER wenn jetzt a1 ÄNDERT, beispielsweise durch hinzufügen eines weiteren Elements zu a1 oder ändern Sie ein beliebiges element a1 und der Kontext gesichert und zurück geladen, der Inhalt von a1 ist UNVERÄNDERT (es bleibt genau so wie es war, bevor alle änderungen, die passiert sind). CHANGES DON'T WORK!
Durch die Art und Weise, während die app ausgeführt wird, werden alle änderungen in a1 GESPEICHERT SIND, in a1.
Bitte, könnt Ihr helfen - was ist hier Los?
Dank sehr viel für Ihre Hilfe!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Veränderungen in deinem Array sind, nicht zur Arbeit zu gehen, weil die Core-Daten nicht sehen können in dem array.
Die kurze Antwort ist dies nicht tun. Dies ist kein Grund, jemals zu speichern, ein array (oder ein Wörterbuch für diese Angelegenheit) in Core Data.
Erstellen einer neuen Entität in Core Data, und erstellen Sie eine Beziehung. Wenn die Reihenfolge wichtig ist, stellen ein 'order' Attribut in der untergeordneten Tabelle.
Nicht speichern arrays als binäre Objekte.