2009-07-29 4 views
0

i sind neu in Core Data und mein Modell ist zu komplex es hier zu beschreiben, sorryCoredata Fehler beim Speichern: „Bindung für dieses SQLType 7 implementiert

Meine App viele kleine Mengen von Daten aus dem Internet holen. und speichern sie es auf die Kerndateneinheiten. Die Einsparung feine manchmal, aber manchmal gibt es ein

NSInternalInconsistencyException 

mit dieser Beschreibung

binding not implemented for this SQLType 7

Die Ausnahme stellt sich in der

[NSManagedObjectContext save:] 

Methode, so kann ich nicht durch sie mit dem Debugger gehen kann.

Ich habe mein CoreData-Modell überprüft und alles scheint in Ordnung zu sein. Ich überprüfte alle Werte von der Konsole und keine der erforderlichen Attribute sind Null.

Vielleicht hat jemand eine Idee, um dieses Problem zu beheben? Danke

Antwort

0

Ich bekomme diesen Fehler auch. Laut den etwas älteren SQL-Headern, die ich im 10.4 SDK gefunden habe, ist Typ 7 Real. Mein Modell verwendet den Decimal-Typ ziemlich umfangreich, der wahrscheinlich dem SQL Real-Typ zugeordnet wird. Meine beste Vermutung ist, dass die SQL-Routinen, die diese Typen an ihre Anweisungen binden, fehlerhaft oder unvollständig sind.

0

mein Problem wird gelöst, wenn ich die Änderungen direkt nach der Erstellung des Modells ändere. Vielleicht gibt es einige unverarbeitete Änderungen, die einige andere Änderungen überlappen, und dies erzeugt den Fehler. Laut Apple Docs sollten Sie immer Änderungen speichern direkt nachdem sie

Denken Sie daran gemacht werden, dass das verwaltete Objekt Kontext wie ein Scratch Pad fungiert ( „Managed Objects und die Managed Object Context“ sehen). Was auch immer Sie ändern make-ob Bearbeiten Eigenschaftswerte oder Hinzufügen oder Löschen ganze Objekte-sind nicht wirklich verpflichtet, der persistente Speicher (Datei), bis Sie den Kontext speichern. In der Regel speichern Sie in einer iPhone-Anwendung die Änderungen , sobald der Benutzer sie vorgenommen hat.

CoreData iPhone Tutorial

Hope this helfen Ihnen auch Ihr Problem zu lösen.

Good Luck ;-)

1

Wie sich herausstellte war dies ein Multi-Threading-Problem mit Sperren des persistenten Speicher zu tun. Lustig, es war nie ein Problem auf 10.4 oder 10.5.

Verwandte Themen