Я загружаю и сохраняю изображение радара (в формате .gif) с веб-сайта, используя NSURLConnection. В методе connectionDidFinishLoading: я создаю изображение, используя [UIImage imageWithData:].
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// Problem is here. mutableData declared earlier.
UIImage *baseImage = [UIImage imageWithData:mutableData];
if (baseImage)
{
// do stuff with image
}
[mutableData release];
}
Проблема в том, что загружаемые мной изображения иногда пустые и имеют четкий фон. Это НЕ ошибка в изображении (иногда на радаре нечего возвращать). Но когда это происходит, я получаю эту ошибку в консоли. Ошибка также может возникать, когда изображение имеет очень небольшое количество пикселей (1 или 2).
Error: ImageIO: malformed GIF frame#0 (600 x 550)
При возникновении ошибки создается изображение, равное нулю. 600x550 - это размер изображения, которое я загружаю, в пикселях. Таким образом, возвращаемое изображение в nil, что создает впечатление, что загрузка не удалась.
Стоит отметить, что baseImage может дать сбой в 2 случаях, упомянутом выше, или когда я загружаю изображение, которое указано на сервере, которого еще нет. Во втором случае mutableData содержит строку ошибки. Мне все еще нужно, чтобы 2-ой случай потерпел неудачу, поэтому я знаю, что изображение не было успешно загружено.
Что мне нужно сделать в этом случае, так это создать чистое изображение и сохранить его, чтобы пользователь мог видеть, что загрузка выполнена правильно.
Есть идеи?
Спасибо,
Росс