In meiner Anwendung habe ich eine Klasse (zB CoredataHandler.swift) zum Speichern und Abrufen von Objekten verwendet. Ich habe diese Tutorials verfolgt. Ich habe Strategie 2: Parent / Child Managed Object Contexts verwendet. Objekte werden jedoch nicht in den Kerndaten gespeichert. Anstatt NSOperation zu verwenden, habe ich ein normales Klassenobjekt verwendet.
%Vor%Werte werden nicht in den Kerndaten gespeichert. Bitte gib mir den besten Weg.
EDITED: Update :: From Answers, Speichern von übergeordneten Elementen im untergeordneten Kontext ist gespeichert
%Vor%Das Speichern eines untergeordneten Kontexts verschiebt diese Änderungen einfach in den übergeordneten Kontext. Sofern Sie nicht auch den übergeordneten Kontext speichern (der Änderungen an den persistenten Speicher überträgt), werden Ihre Änderungen nicht auf den Datenträger geschrieben.
Aus der NSManagedObjectContext
Klassenreferenz:
Wenn Sie Änderungen in einem Kontext speichern, werden die Änderungen nur "eine Speicherung" festgeschrieben. Wenn Sie einen untergeordneten Kontext speichern, werden Änderungen an seine übergeordneten Elemente übertragen. Änderungen werden nicht im permanenten Speicher gespeichert, bis der Stammkontext gespeichert wird. (Ein Kontext für verwaltete Root-Objekte ist einer, dessen übergeordneter Kontext null ist.)
Wenn Sie mit Core-Daten noch nicht vertraut sind, sollten Sie sich keine Gedanken über Nebenläufigkeit und mehrere Kontexte machen, es sei denn, Sie haben tatsächlich ein Problem, das eine Lösung erfordert. Wenn Sie nicht mit Tausenden von Datensätzen zu tun haben oder wenn Sie daran interessiert sind, Editierkontexte für reversible Änderungen zu erstellen, wird ein einziger Hauptthreadkontext alles tun, was Sie brauchen.
Tags und Links objective-c ios core-data swift core-data-migration