ImageIO: JPEG Поврежденные данные JPEG: преждевременный конец сегмента данных iphone - как это обнаружить?

Я получаю эту ошибку, загружая изображение по HTTP. Я просмотрел ответ здесь , но даже действительные изображения не возвращают YES из функции.

Есть ли другие идеи?

Код для получения изображения достаточно прост. Это происходит в фоновом потоке.

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
UIImage *image = [UIImage imageWithData:data];

Это функция из этого потока:

- (BOOL)isJPEGValid:(NSData *)jpeg {
    if ([jpeg length] < 4) return NO;
    const char * bytes = (const char *)[jpeg bytes];
    if (bytes[0] != 0xFF || bytes[1] != 0xD8) return NO;
    if (bytes[[jpeg length] - 2] != 0xFF || 
            bytes[[jpeg length] - 1] != 0xD9) return NO;
    return YES;
}

9
задан Community 23 May 2017 в 12:01
поделиться