私は現在、画像がインターネットから読み込まれ、ローカルデータベースに保存されるため、再度読み込む必要がないiPhone用のゲームに取り組んでいます。これは常にうまくいきました。最近、テスト グループ用に新しいアドホック ディストリビューションを作成しました (SDK 3.1.2 を使用して初めてディストリビューションを作成したとき)。iPhone を 3.1.2 にアップグレードしたすべての人は、データベースに書き込むことができなくなりました。インターネットから毎回画像をロードする必要があります。3.1.2 より前のバージョンの iPhone を使用しているユーザーには問題がなく、以前にビルドされたバージョン (SDK 3.1 以下を使用) は 3.1.2 の iPhone で問題はありません。私がゲームに加えた更新は、ゲーム内のデータ マネージャーとは何の関係もありませんでした。もう1つの奇妙なことは、次のコードを使用してコンソールにメッセージが見つからないことです:
- (void) saveImage:(NSString *)imagePath withData:(NSData *)imageData {
if (insert_image_statement == nil){
const char *sql2 = "INSERT INTO image (imagePath, imageData) VALUES (?, ?);";
if (sqlite3_prepare_v2(database, sql2, -1, &insert_image_statement, NULL) != SQLITE_OK) {
NSLog(@"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
}
}
sqlite3_bind_text(insert_image_statement, 1, [imagePath UTF8String], -1, NULL);
sqlite3_bind_blob(insert_image_statement, 2, [imageData bytes], [imageData length], NULL);
int success = sqlite3_step(insert_image_statement);
if (success == SQLITE_ERROR){
NSLog(@"Error: failed to insert statement with message '%s'.", sqlite3_errmsg(database));
}
sqlite3_reset(insert_image_statement);
}
したがって、sqlite3 は、この問題の解決策を示す可能性のあるエラーをスローしません。SDK 3.1.2 で、データベースにデータを書き込む権限がないように見える理由を知っている人はいますか?