2016-09-11 6 views
9

私のiPhoneアプリを再リリース中で、UIManagedDocumentのexecuteFetchRequestがSQLiteエラーコード:6922を取得しました。私はインターネットを検索し、SQLiteエラーコード6922はありません。誰でもこれを見ました。すべてがXcode 7でうまくいきました。Xcode 8 GM - SQLiteエラーコード:6922、 'ディスクI/Oエラー'

+0

xcode 8でもこの問題が発生しました。 –

+0

私は同じ問題を抱えています..誰もまだそれを解決しましたか? –

+1

このエラーが表示される恐れがありました。私はNSFileManagerを使用して、ドキュメントディレクトリの写真を削除していました。私はヌルの写真名を渡していましたが、そのプロセスはドキュメントDIRECTORYを削除しようとしました!削除に失敗しましたが、CoreDataレコードが破損しました。 – DontKnow

答えて

2

特定のファイルに設定したNSPersistentStoreにNSManagedObjectContextを保存した後、iOS 10でこのエラーが発生しました。保存した後、ファイルを暗号化して別のファイルとして保存した後、ファイルが削除され、次にexectueFetchRequest経由でNSManagedObjectContextからデータにアクセスしようとしたときに、削除したNSPersistentStoreファイルからデータを取得しようとしました。ファイルが存在しなくなったので、「SQLiteエラーコード:6922、「ディスクI/Oエラー」」

NSPersistentStoreを設定したファイルを削除しないと、executeFetchRequestはファイルからデータを読み込み、SQLiteエラーはスローされません。

iOS 10では、データがメモリに残っていないか、デフォルトでファイルからデータを読み取っているようです。

iOS 9.3シミュレータ(XCode 8 GM)で元のコードを実行すると、以前と同じように動作し、エラーは発生しません。

関連する問題