データベースを閉じて削除してテストフィクスチャに置き換えるテストを実行した後で、アプリケーションとそのデータベースファイルの状態で異常な動作が見られました。デバッグ用のPC上のツールでデータベースファイルを調べると、アプリケーション自体が報告していると思われるものと一致しません。この奇妙な振る舞いはthis bugに関連する可能性があります。 Sqliteデータベースの.db-shm拡張子と.db-wal拡張子は何ですか?
は、私はデータベースと同じベース名を持つ2つのファイルがあることに気づいた(通常.db
拡張子を持つ。)ファイルの拡張子は
.db-shm
と
.db-wal
あり、それぞれが
.db
ファイルのタイムスタンプよりも新しいです。
私はこれが何らかのタイプの一時ファイルであると仮定します。しかし、私はアプリケーションが終了した場合、彼らは削除されるべきではないかと思いますか?さらに重要なのは、オペレーティングシステムによってアプリケーションが終了する前に、ファイルに格納されているデータが.db
ファイル内で更新されたものと仮定します。これは正しいです?
@ satur9nineこれは本当に奇妙です。他の人のコードを更新するよう頼まれました。テスト中に、彼のコアデータの使用がiOS 6.xで正常に機能していたことがわかりましたが、iOS 7 .x ..それは上記の '.db-shm'と' .db-wal'をもたらしました。これは誰にも起こりましたか? – abbood
iOS 7では、すべてのトランザクションが含まれているように見えます。 dbファイルは空のデータベースです。 dbの "本当の"内容を見るために3つのファイルをすべて取得する必要があります。 –