[英]iOS - Received memory warning for showing an image on Today Extension
我正在尝试从RSS提要下载图像,然后将其显示在今天的扩展小部件中,问题甚至显示出一个简单的图像也会引起Memory Warning!:
_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.
扩展程序的内存限制比普通的iOS应用程序低得多。 我建议重新考虑您的体系结构,并减少扩展本身的工作。
问题解决了 ! 对于那些会遇到此问题的人,您必须通过以下方法简单地调整图像大小:
-(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! 因此,使用此代码可以缩小其大小并节省大量内存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.