Я пытаюсь закодировать загрузчик асинхронных изображений. Я использую NSURLConnection, чтобы получить данные в NSMutableData и использую эти данные после завершения инициализации UIImage.
Я проверил байты, и он корректно загружает все изображение (как минимум, нужное количество байтов); когда я звоню
[UIImage imageWithData:data]
, а затем проверьте свойства изображения, это нулевая ширина и число мусора для высоты, фактически одно и то же число, независимо от того, какое изображение. Я пытался с кучей разных изображений, PNG, JPG, разные URL, он всегда загружает изображение полностью, но UIImage не может инициализировать с этими данными. Что я могу здесь делать не так?
Спасибо.
Код действительно такой, как вы ожидаете, он будет выглядеть так:
Делегат соединения:
-(void)connectionDidFinishLoading:(NSURLConnection*)theConnection {
[[ImageManager sharedInstance] dataDownloadedBy:self]; }
ImageManager:
-(void)dataDownloadedBy:(WebConnection *)connection{
WebImage *image = [[WebImage alloc] initWithLink:connection.url];
[image setImageFromData:connection.data];
[images addObject:image];
[connection release];}
WebImage:
-(void)setImageFromData:(NSMutableData *)data{
image = [[UIImage alloc] initWithData:data];}