Magischer Datensatz wird nicht gespeichert

8

Ich benutze Magical Record: Ссылка

Ich versuche Datensätze zu speichern, die ich von meiner Website in die sqllite Datenbank mit Magical Record und Core Data bekomme, aber ich bekomme immer den Fehler:

%Vor%

Hier ist der Code:

%Vor%     
Kermit the Frog 07.12.2012, 17:24
quelle

4 Antworten

7

Das Problem ist, dass Sie den richtigen Kontext nicht speichern. Wenn Sie sich die Quelle ansehen, erstellt [Service createEntity] das ManagedObject im Kontext für den aktuellen Thread. Nicht im defaultContext.

Sie müssen also anstelle von [[NSManagedObjectContext defaultContext] saveNestedContexts] den Kontext für den aktuellen Thread speichern (d. h. den Kontext, in dem das ManagedObject erstellt wurde). Der Code sollte also [[NSManagedObjectContext MR_contextForCurrentThread]

lauten     
Edward Huynh 17.12.2012, 23:59
quelle
5

Haben Sie versucht, die Dienstprogrammmethode saveInBackgroundWithBlock: zu verwenden?

Wenn nicht möchten Sie vielleicht etwas wie den folgenden Code versuchen. Beachten Sie, dass es alle Ihre Objekte auf einmal im Hintergrund speichert und dann den Abschlussblock im Hauptthread ausführt:

%Vor%

Darüber hinaus können Sie sehen, ob [[NSManagedObjectContext defaultContext] hasChanges] mit YES zurücksendet, um zu prüfen, ob es sich um ein Problem beim Speichern oder der Entität selbst handelt.

    
shilgapira 08.12.2012 15:19
quelle
1

In meinem schnellen Projekt tue ich:

%Vor%

Also muss ich Folgendes tun, um auf die Festplatte zu speichern:

%Vor%     
Besi 03.02.2016 22:23
quelle
0

verschiebe die Linie

%Vor%

außerhalb der for-Schleife, es funktionierte für mich

    
EnasAZ 24.02.2013 17:28
quelle