iOS - 在 Today Extension 上显示图像时收到内存警告
iOS - Received memory warning for showing an image on Today Extension
我正在尝试从 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.
扩展程序的内存限制比普通 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 之间!所以使用这段代码你可以缩小它的大小并节省大量内存。
我正在尝试从 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.
扩展程序的内存限制比普通 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 之间!所以使用这段代码你可以缩小它的大小并节省大量内存。