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 之间!所以使用这段代码你可以缩小它的大小并节省大量内存。