iphone - 保留使用 UIGraphicsGetImageFromCurrentImageContext 创建的 UIImage 的所有权

标签 iphone memory-management uiimage screenshot

我使用此代码来获取窗口在不同时间的屏幕截图,并将创建的 UIImage 放入一个数组中,该数组传递给另一个 UIViewController,以便它们可以全部显示在网格中。我尝试释放 UIImage,但内存使用量永远不会下降...我如何在这里使用该图像一次,并保留所有权,以便在显示后释放内存

UIGraphicsBeginImageContext(self.window.bounds.size);<br/> [self.window.layer renderInContext:UIGraphicsGetCurrentContext()];<br/> UIImage *image = UIGraphicsGetImageFromCurrentImageContext();<br/> UIGraphicsEndImageContext();<br/> [imagesArray addObject:image];<br/> [image release];<br/>

最佳答案

UIGraphicsGetImageFromCurrentImageContext() 返回“包含当前位图图形上下文内容的自动释放图像对象。”

当您将图像添加到 imagesArray 时,NSMutableArray 对其进行保留,并且 这就是你所需要的。当图像从数组中删除时,内存将被释放。

不应该对图像调用释放。

关于iphone - 保留使用 UIGraphicsGetImageFromCurrentImageContext 创建的 UIImage 的所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464146/

相关文章:

iphone - 删除核心数据中的对象

javascript - .Focus() 无法在 JQUERY MOBILE 中使用 jquery 或 javascript

c++ - 两种创建二维数组的方法之间的区别

ios - 如何使用 pdfkit 从相机拍摄的图像创建 pdf

ios - 无法获取 UIBarButtonSystemItemTrash 的图标

ios - Swift tvOS - 当用户按下 MENU 按钮时暂停 UIImage 动画

iphone:缓存大量图像的智能方法?

iphone - 在 iPhone 上从 CSV 创建 PDF

c++ - 如何分析和/或消除由于内存分配引起的性能变化?

performance - 可分配数组性能