ImageIO:<ERROR> JPEG损坏的JPEG数据:数据段过早结束iphone – 如何捕捉这个?

我得到这个错误通过HTTP下载一个图像。 我已经看了这里的答案,但即使有效的图像不会从函数返回YES

任何其他的想法?

获取图像的代码非常简单。 这发生在后台线程中。

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

这是该线程的function:

 - (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; } 

使用一个无符号的字符。 然后比较应该工作。

 const unsigned char * bytes = (const unsigned char *)[jpeg bytes]; 

代替

 const char * bytes = (const char *)[jpeg bytes];