首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIGraphicsGetImageFromCurrentImageContext泄漏

UIGraphicsGetImageFromCurrentImageContext泄漏
EN

Stack Overflow用户
提问于 2011-08-25 21:24:57
回答 2查看 2.7K关注 0票数 4

我写了下面的代码片段来截取屏幕快照:

代码语言:javascript
复制
UIGraphicsBeginImageContext(animationView.frame.size);
[[window layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage* screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

但是,UIGraphicsGetImageFromCurrentImageContext似乎正在泄漏。这是正确的吗?

在Instruments中,我无法获得确切的泄漏点。在活动监视器中,我观察到当我切换到执行上述代码片段的UI时,内存增加了一些MB。从这一点开始,它就再也不会减少。UIGraphicsGetImageFromCurrentImageContext是否有内存泄漏?我该如何解决这个问题?

编辑

仪器分析活动监视器:显示执行此行代码时的内存增加;即使在释放屏幕截图(UIImage)后也不会减少

泄漏和分配,堆快照:不显示任何泄漏或此分配。

EN

回答 2

Stack Overflow用户

发布于 2011-08-25 21:29:44

您刚刚创建了一个包含animationView数据的UIImage (可能有几MB)。也许您应该将此功能包装在一个自动释放池中。

代码语言:javascript
复制
 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];     
    UIImage* screenshot = UIGraphicsGetImageFromCurrentImageContext();
    //[screenshot retain]; //If you want precise control over when it is released and you will use it later.
    [pool release];
票数 -1
EN

Stack Overflow用户

发布于 2016-03-24 17:43:07

CGContextRef context = UIGraphicsGetCurrentContext();

/*你的代码*/

CGContextRelease(上下文);

完成后清除上下文

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7191146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档