Динамическая загрузка изображений в UIImageView из базы данных в объективе c - PullRequest
0 голосов
/ 05 октября 2010

Я сохранил свои изображения в базе данных с типом BLOB. Теперь я извлекаю эти изображения из базы данных с помощью sql stmt и сохраняю их в объекте NSData. см. следующий фрагмент кода

NSData *img = [[NSData alloc] initWithBytes:sqlite3_column_blob(loadInfostmt, 4)  length: sqlite3_column_bytes(loadInfostmt, 4)];

self.birdImage = [UIImage imageWithData:img];  

После получения изображения я попытался установить его в атрибут изображения UIImageView, чтобы загрузить его для просмотра изображения. Я использовал следующие методы, но ничего не работает.

1

self.imgPikr = [[UIImageView alloc] initWithImage:brd.birdImage];  
[self.imgPikr setImage:brd.birdImage];   

2

[self.imgPikr = [[UIImageView alloc] init];    
self.imgpikr.image = brd.birdImage;

3

   [self.imgPikr = [[UIImageView alloc] init];    
   [self.imgpikr setImage:brd.birdImage];

Здесь imgPikr - это объект UIImageView, а birdImage - это объект класса UIImage. все остальные данные отображаются правильно, кроме изображения. У меня нет ошибок, предупреждений или исключений времени выполнения, но я все еще не могу загрузить изображение. Пожалуйста, сообщите мне решение. Я работаю над этим с недели. но не смог найти ничего работающего. Любой ответ или эксперимент приветствуется.

Спасибо заранее

1 Ответ

0 голосов
/ 05 октября 2010

Опция 1 - лучший вариант, поскольку -[UIImageView initWithImage:] автоматически изменит размер imageView до того же размера, что и переданное изображение (и также не нужно setImage:, если вы используете этот инициализатор).

Однако, как указывает @Robot K в комментариях, вам все равно нужно добавить self.imgPikr в качестве подпредставления представления, видимого на экране.

Кроме того, если ваше свойство imgPikr объявлено как (retain), значит, у вас утечка памяти.

...