Я пытаюсь отобразить изображение из моей базы данных sqlite (как blob), он знает, что файл изображения находится там, отображая длину изображения и NSLog: «Image FOUND», но он не загружает изображение в изображение. Я пробовал эти много примеров из stackoverflow как this one и еще что-то еще, но все равно никаких проблем. Спасибо заранее, ребята. Вот то, что я до сих пор:Невозможно отобразить изображение из базы данных sqlite (blob) в iphone
sqlite3_stmt *statement1;
NSString *querySQL1 = [NSString stringWithFormat:@"SELECT picture FROM table1 WHERE var = %f", variable];
const char *query_statement1 = [querySQL1 UTF8String];
if(sqlite3_prepare_v2(_DB, query_statement1, -1, &statement1, nil) == SQLITE_OK)
{
if (sqlite3_step(statement1) == SQLITE_ROW)
{
int length = sqlite3_column_bytes(statement1, 0);
NSData *data = [[NSData alloc] initWithBytes:sqlite3_column_blob(statement1, 0) length:length];
UIImage *image = [UIImage imageWithData:data];
NSLog(@"Length : %d", [data length]);
if(data == nil)
{
NSLog(@"No image found.");
}
else
{
NSLog(@"image FOUND .");
myImageView.image = image;
}
}
}
только потому, что данные = ноль не означает, что она содержит действительные данные изображения (т.е. PNG или JPG-изображение), которые будут обрабатывать [UIImage imageWithData]. Проверьте, есть ли (image == nil). Если вы видите нуль, а затем просмотрите содержимое своих данных. – CSmith
просто попробовал это, и он вернулся: изображение НАЙДЕНО, но все еще ничего не отображает в изображении. – rick261
Это может быть тонна вещей. Как говорит CSmith, может оказаться, что то, что вы извлекли из базы данных, было недействительным. В дополнение к тестированию, чтобы убедиться, что 'data' был' nil', проверьте, не было ли 'image'' nil'. Если это 'nil', то проблема заключается в данных в базе данных. Если это не 'nil', то это что-то другое (например,' myImageView' - 'nil' или его' frame' таков, что вы не можете его увидеть). – Rob