首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGImageRef cg = [[UIImage imageNamed: Path] CGImage];需要CGImageRelease(cg)'?

CGImageRef cg = [[UIImage imageNamed: Path] CGImage];需要CGImageRelease(cg)'?
EN

Stack Overflow用户
提问于 2012-12-18 04:36:50
回答 2查看 1.1K关注 0票数 2

我正在尝试从iOS中的图像资源中读取ARGB像素。为此,我需要一个可以用来获取其CGDataProviderCGImageRef。我的问题是,如果我使用以下命令创建CGImageRef

代码语言:javascript
复制
CGImageRef cg = [[UIImage imageNamed: Path] CGImage];

我最终是否需要调用CGImageRelease(cg)?如果我不调用CGImageRelease,会不会有内存泄漏?

我遇到的另一个问题是,第二次读取同一个文件会返回一个空图像,我怀疑这可能是因为我第一次没有调用CGImageRelease

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-18 04:39:56

只有在使用CGImageCreateCopyRetain(或任何与create、copy、retain相关的方法)时,才必须调用CGImageRelease。例如:- CGBitmapContextCreateImage)。在这种情况下,您不必这样做,因为您没有执行任何创建、复制或保留操作。

票数 7
EN

Stack Overflow用户

发布于 2012-12-18 04:38:22

否,CGImage将绑定到‘s镜像的生命周期

遵循可可的“创建规则”:你只需要释放你拥有的东西(来自名为new*,copy*,retain的方法的对象返回一个所有权)

此外,来自CF的任何对象都遵循CF创建规则(仅限来自名为Create*,Copy*,Retain的方法的对象)

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

https://stackoverflow.com/questions/13921779

复制
相关文章

相似问题

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