我正在使用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 下载时数据会损坏。
谢谢!
编辑:如果你有更多的图像,那么最好使用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;
}