iPhone - 通过 HTTP 接收的图像的 JPEG 数据损坏

标签 iphone cocoa-touch uiimage

我使用 NSURLConnection 通过 HTTP 获取图像,如下 -

NSMutableData *receivedData;

- (void)getImage {
    self.receivedData = [[NSMutableData alloc] init];
    NSURLConnection *theConnection = // create connection
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {    
   [receivedData appendData:data];
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
   [connection release];

   UIImage *theImage = [UIImage imageWithData:receivedData];
}

通常它工作得很好,但有时我会看到这个被记录 - :损坏的 JPEG 数据:数据段过早结束

此时,图像尚未完全渲染。我会看到大约 75%,然后右下角是一个灰色框。

关于如何解决这个问题有什么想法吗?我是否不正确地构建了自己的形象?

最佳答案

您的 HTTP 代码看起来正确。您可能希望在加载完成后记录接收到的数据的大小,并将其与服务器上图像的预期大小进行比较。如果它是预期的大小,则图像本身可能在服务器上已损坏。

关于iPhone - 通过 HTTP 接收的图像的 JPEG 数据损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1064920/

相关文章:

iphone - UIScrollView 和图像缩略图

iphone - 如何从 Objective C 中的导入类调用方法?

ios - 用背景图片覆盖 UIView

iphone - 如何在不耽误其他所有事情的情况下下载图像?

iphone - 如何在单点触控中无间隙地循环播放 mp3?

iphone - 设备选择了错误的视网膜图像

iphone - 实现对 map View Controller 的搜索

ios - 添加一个小视频剪辑作为背景

ios - iOS 5 iPhone模拟器

ios - 使用 Swift 保存带有圆角和边框的 UIImage