0

所以我听说了,new alloccopy在你负责的堆上创建了新的内存。我想确保 Core Graphics 中的 C 函数也是如此:

myIvar=CGDataProviderCopyData(CGImageGetDataProvider(cgImage));

这是否意味着我必须稍后发布它:

CFRelease(myIvar);

也就是说,如果我稍后在没有发布声明的情况下重新分配,会导致泄漏吗?myIvar

关于评论,我上传了这个截图:

在此处输入图像描述

注释掉的行工作正常。在这条线之前,我有m_parsedImage = CGDataProviderCopyData(CGImageGetDataProvider(cgImage));它也可以正常工作。

4

1 回答 1

1

是的,按照惯例,任何名称中带有 Copy 或 Create 的函数都会返回您必须释放的内容。

在这种情况下,快速查看文档以了解CGDataProviderCopyData节目:

返回值
包含提供者数据副本的新数据对象。您有责任释放此对象。

在发布此类问题之前,请花点时间查看文档。你会为自己节省很多时间。:)

于 2013-04-18T01:29:37.123 回答