В настоящее время я работаю над игрой для iphone, где изображения загружаются из Интернета, а затем сохраняются в локальной базе данных, поэтому их не нужно загружать снова. Это всегда работало нормально.
Недавно я создал новый дистрибутив adhoc для группы тестирования (впервые я создал дистрибутив с использованием SDK 3.1.2), и теперь все, кто обновил свой iphone до 3.1.2, больше не могут писать в базу данных, и поэтому приходится загружать изображения каждый раз из интернета. Люди с версией iphone ниже 3.1.2 не испытывают проблем, а предыдущие версии сборки (с SDK 3.1 или ниже) не имеют проблем на iphone с 3.1.2.
Обновления, которые я сделал в игре, не имели ничего общего с менеджером данных в игре. Еще одна странная вещь - я не нахожу никаких сообщений в консоли, используя следующий код:
- (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 у меня, похоже, нет разрешения на запись данных в базу данных?