Monotouch 5を使用してマルチスレッドメッセージングアプリケーションを開発しています。動作日数が過ぎると、一部の顧客にエラーDatabase disk image is malformed
が返されます。私はインターネットで見つけたKueger SystemsのSQLite.csを使ってSQLiteデータベースにアクセスしています。MonoTouchでデータベースディスクイメージが不正です
データベースにアクセスする複数のスレッド(多くの場合)に問題があるようです。私は、データベースのコンパイル方法(シングルスレッド、マルチスレッド、シリアライズ)について、どこかで読んだことがあります。私は何とかそれを指定していますか?
データベースを壊さずにバックグラウンドスレッドから更新し続けたいと思います。私は間違って何をしていますか?
私はSQLite.csを使用していますので、FinishedLaunchingの最初の行に次の文を発行しました。Console.WriteLine(SQLite.SQLite3.Config(SQLite.SQLite3.ConfigOption.MultiThread));しかし、それは21を返します。これはどういう意味ですか?私はResult enumでそれを見つけることができません。私は早すぎるのですか? –
'#define SQLITE_MISUSE 21/*ライブラリが間違って使用されています* /'私の推測は早すぎます*(早すぎると問題になるかどうかは分かりません)。あなたは 'FinishedLaunching'メソッドの始めにこれを入れましたか? – poupou
はい、これはFinishedLaunchingの最初の行です。私はそれの前に何かする必要がありますか?早すぎますか? (たとえば、dbパスを最初に指定する必要があります)? –