iOS - 收到内存警告,用于在Today Extension上显示图像

时间:2015-05-03 08:11:20

标签: ios objective-c iphone uiimage

我正在尝试从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.

2 个答案:

答案 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!因此,使用此代码可以缩小其大小并节省大量内存。