renderInContext税收应用程序内存
我正在2448 X 2448像素图像上运行此代码。 fullScaleView
也是2448 X 2448( fullScreenView Rect:{{0, 0}, {2448, 2448}}
)。 方法完成后,应用程序内存从49.7MB跳到240MB到172MB。 它保持在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 }
不幸的是,直到你完成使用图像,它将占用空间,所以你只需要快速释放它。