Ich habe ein merkwürdiges Verhalten beim Löschen von Objekten aus einem neuen untergeordneten Kontext.Löschen von Objekt aus dem neuen untergeordneten Kontext
Ich habe einen Managed Object Context mit der Hauptwarteschlange. Ich hole eine Liste von Objekten daraus. Ich erstelle den neuen Kontext mit einer privaten Warteschlange. Ich legte seinen Elternteil als Hauptkontext ein.
Natürlich kann ich nicht versuchen, die Objekte aus der Liste im untergeordneten Kontext direkt zu löschen. Also habe ich existingObjectWithID verwendet: um eine Liste von "äquivalenten" Objekten aus dem Kindkontext zu erstellen. Core Data sagt mir, er kann nicht die Objekte finden:
Fehlerdomäne: NSCocoaErrorDomain Code: 133000
versuchen, ein Objekt nicht im Speicher gefunden zuzugreifen.
Keine weiteren Fehler Info
Und natürlich, ich kann sie nicht gelöscht werden.
Jetzt, wenn ich die Liste der Objekte im Kind-Kontext abrufen, werden sie gefunden und ich kann sie löschen (aber das wäre Betrug, ich soll nicht wissen, wie man diese Liste holt).
Was ist der Trick ??? Ist nicht existingObjectWithID: soll vom übergeordneten Kontext abgerufen werden, wenn sich Objekte (noch) nicht im Child-Kontext befinden?
mainQueueContext angehängt ** direkt ** an 'NSPersistentStoreCoordinator' (schlechte Idee). ** Es gibt keinen Trick. ** Siehe eine ähnliche Frage hier: [link] (http://stackoverflow.com/questions/22511745/cannot-retrieve-temporary-object-in-child-context-with-existingobjectwithiderro). – Khundragpan
Danke. Die Verbindung beschreibt tatsächlich vollständig das Problem, das ich habe. Nun, ich denke, ich muss meine Stack-Architektur und den Lebenszyklus meiner Kontexte überdenken. –