В настоящее время я работаю над игрой для iphone, где изображения загружаются из Интернета, а затем сохраняются в локальной базе данных, поэтому их не нужно загружать снова. Это всегда срабатывало нормально. Недавно я создал новый дистрибутив adhoc для группы тестирования (первый раз, когда я создал дистрибутив с использованием SDK 3.1.2), и теперь все, кто обновил свой iphone до 3.1.2, больше не могут писать в базу данных и таким образом, приходится загружать изображения каждый раз из Интернета. Люди с версией для iphone ниже 3.1.2 не имеют проблем, а версии предыдущих версий (с SDK 3.1 или ниже) не имеют проблем с iphone с 3.1.2. Обновления, которые я сделал в игре, не имели никакого отношения к datamanager в игре. Еще странно, что я не нахожу никаких сообщений в консоли, используя следующий код:Проблема с разрешением на запись на sqlite3 на 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 У меня нет разрешения на запись данных в базу данных?
Какая ошибка вы видите? Где ваша база данных? Какие результаты вы получаете от sqlite3_bind_text и sqlite3_bind_blob? Я могу заверить вас, что мы все еще пишем blobs в нашу базу данных с помощью 3.1.2, и наш SQL намного сложнее, чем это. Я сомневаюсь, что вы нашли ошибку в SQLite. –
Я не вижу никакой ошибки, единственное, что я замечаю, это то, что blob не записывается в базу данных. База данных находится в каталоге документов. Странно, что это происходит только в AdHoc Distribution, если я создаю приложение непосредственно на телефоне, этого не произойдет. –