iphone - 将 UIview 转换为 UIimage 导致内存泄漏

标签 iphone uiview uiimage coverflow

我正在使用 coverFlow View 开发 iPhone 应用程序,当应用程序构建卡片时,它使用 UIView 来添加标签和其他内容。然后我使用以下代码将 UIView 转换为 UIImage:

UIGraphicsBeginImageContext(imageView.bounds.size);
[imageView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

// returning the UIImage
return viewImage;

每次重新绘制 coverflow 时,都会产生巨大的内存分配增量,即使我释放 coverFlow View ,该增量也永远不会减少。

我认为内存泄漏出现在我添加的代码中,您认为如何?

最佳答案

您提供的代码片段中没有明显的内存泄漏。由于UIGraphicsBeginImageContext(),该操作无法在后台线程上执行。 ,所以你应该有一个 NSAutoreleasePool就位(UIGraphicsGetImageFromCurrentContext()的返回值是自动释放的)。如果没有更多信息,就不可能判断内存泄漏可能在哪里 - 我建议您查看最终拥有 viewImage 对象的任何对象,并确保在保留 UIImage 时正确释放它。

关于iphone - 将 UIview 转换为 UIimage 导致内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1775873/

相关文章:

iphone - 使用 iPhone 4/4s 作为莫尔斯发射器

iphone - 如何获取联系人的显示名称属性

iphone - 在 iPhone 中绘制并填充矩形

ios - 如果当前在屏幕上不可见,是否可以获取 View Controller 的快照,包括其状态栏?

IOS:在 UIImage 中设置 alpha

ios - 如何获取本地保存的UIImage到UIImage的路径?

iphone - 如何检查是否已调用此方法?

ios - 如何在绘图中添加闪烁圆圈:inRect: method of UIView?

ios - 在 Storyboard中创建 UIView 连接时获取 "Couldn' t 编译连接

ios - iOS UIImageView 和 App 进入后台的奇怪行为