2016-09-11 5 views
9

Ich bin dabei, meine iPhone-App erneut zu veröffentlichen, und jetzt erhält ein executeFetchRequest auf meinem UIManagedDocument einen SQLite-Fehlercode: 6922. Ich habe das Internet durchsucht und es gibt keinen SQLite-Fehlercode 6922. Jeder hat das gesehen. Alles funktionierte gut mit Xcode 7.Xcode 8 GM - SQLite-Fehlercode: 6922, 'Festplatten-E/A-Fehler'

+0

Angesichts dieses Problems sogar auf xcode 8 nach dem offiziellen Start. –

+0

Ich habe das gleiche Problem .. Wer hat es schon gelöst? –

+1

Es wurde ein schrecklicher Fehler gemacht, der diesen Fehler für mich ausgelöst hat: Ich habe den NSFileManager verwendet, um ein Foto im Dokumentenverzeichnis zu löschen. Ich hatte einen Null-Foto-Namen und der Prozess versucht, die Dokumente zu löschen VERZEICHNIS! Die CoreData-Datensätze konnten nicht gelöscht, aber beschädigt werden. – DontKnow

Antwort

2

Ich lief auch in diesem Fehler in iOS 10 nach dem Speichern eines NSManagedObjectContext zu einem NSPersistentStore, die ich auf eine bestimmte Datei festgelegt hatte. Nach dem Speichern wurde die Datei gelöscht (nachdem ich sie verschlüsselt und als eine andere Datei gespeichert hatte) und als ich das nächste Mal versuchte, über den executeFetchRequest auf Daten vom NSManagedObjectContext zuzugreifen, versuchte sie, die Daten aus der NSPersistentStore-Datei zu ziehen, die ich gelöscht hatte. Da die Datei nicht mehr existierte, gab es mir den "SQLite-Fehlercode: 6922, 'Platten-E/A-Fehler'"

Wenn, ich lösche nicht die Datei, die ich meine NSPersistentStore als gesetzt hatte, kann die executeFetchRequest lese die Daten aus der Datei und es wird kein SQLite-Fehler ausgegeben.

Es scheint, dass in iOS 10 die Daten nicht im Speicher verbleiben oder standardmäßig die Daten aus der Datei gelesen werden.

Wenn ich den ursprünglichen Code im iOS 9.3 Simulator (XCode 8 GM) ausführen, funktioniert es wie zuvor und kein Fehler ist aufgetreten.