renderInContext税收应用程序内存

我正在2448 X 2448像素图像上运行此代码。 fullScaleView也是2448 X 2448( fullScreenView Rect:{{0, 0}, {2448, 2448}} )。 方法完成后,应用程序内存从49.7MB跳到240MB到172​​MB。 它保持在172MB。 在这个renderInContext之后,似乎应用程序仍然应该在如此高的内存空间下运行。 在哪里以及如何强制发布? (iOS 7 XCode 5 ARC)。

 UIGraphicsBeginImageContextWithOptions(fullScaleView.bounds.size, fullScaleView.opaque, 1.0); [fullScaleView.layer renderInContext: UIGraphicsGetCurrentContext()]; UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

内存跳转,因为图像是巨大的 – 如果你确定你不再需要它,你应该包装无论你在返回的图像在自动释放块中使用:

例如

 @autoreleasepool { UIImage *theReturnedImage = yourmethodthatreturnstherenderedimage(); // do stuff with your image } 

不幸的是,直到你完成使用图像,它将占用空间,所以你只需要快速释放它。