1

NSURLConnection用来从服务器加载图像(大小为 1.2 mb)。我正在做的是delegate我正在分配我的imageView(它的UIImageView)与接收到的图像。所以它看起来像下载。

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    UIImage *image = [UIImage imageWithData:receivedData];
    imageView.image = image;
    image = nil;
}

在 XCode 打印NSLog以下消息期间。

<Error>: ImageIO: JPEG Corrupt JPEG data: premature end of data segment

我知道它是我正在制作的损坏字节的消息,UIImage然后将其分配给imageView.

有没有办法阻止 XCode 代表我写这个消息? 我必须这样做,因为我需要向用户显示正在下载的图像。

我已经检查了一些检查时的答案bytes!但这不是我的解决方案,因为我已经知道为什么会发生这种情况?,我只想阻止 XCode 将其打印在我的一半上。

已编辑

使用 NSURLConnection 下载时数据会损坏。

谢谢!

4

1 回答 1

3

编辑:如果您有更多图像,那么您使用SDWebImage加载图像会更好

首先接收使用此代表的图像的全部数据:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    if (!receivedData)
    {
        receivedData = [NSMutableData data];
    }

    [receivedData appendData:data];

    NSLog(@"Receiving data... Length: %d", [receivedData length]);
}

现在完全接收到数据,这个方法将被调用:

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
  UIImage *image = [UIImage imageWithData:receivedData];
  if(image) 
    imageView.image = image;
}
于 2012-10-09T05:58:14.607 回答