我正在尝试从RSS源下载图像然后在今天的扩展窗口小部件中显示它,问题甚至显示一个简单的图像导致内存警告!:
_imageView.image = [UIImage imageName:xxx.jpg];
这是我使用UIImageView+AFNetworking
下载图片的代码:
[_wImage setImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[item.imagesFromContent objectAtIndex:0]]]
甚至尝试使用NSData
:
[_wImage setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:
[NSURL URLWithString:[item.imagesFromContent objectAtIndex:0]]]]];
结果仍为Received memory warning.
答案 0 :(得分:3)
扩展程序的内存限制远低于普通的iOS应用程序。我建议重新考虑你的架构,并在扩展本身做更少的工作。
答案 1 :(得分:3)
问题解决了!对于那些将面临此问题的人,您必须简单地通过以下方式调整图像大小:
-(UIImage *)resizeImage :(UIImage *)theImage :(CGSize)theNewSize {
UIGraphicsBeginImageContextWithOptions(theNewSize, NO, 1.0);
[theImage drawInRect:CGRectMake(0, 0, theNewSize.width, theNewSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
我的图像是1024 x 768,尺寸为100到200 kb!因此,使用此代码可以缩小其大小并节省大量内存。