这里是否需要CFRelease来防止泄漏?

时间:2013-04-18 01:07:29

标签: objective-c core-graphics

所以我听说new alloccopy在您负责的堆上创建新内存。我想确保核心图形中的C函数也是如此:

myIvar=CGDataProviderCopyData(CGImageGetDataProvider(cgImage));

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

CFRelease(myIvar);

换句话说,如果我稍后重新分配myIvar 没有发布声明,它会导致泄密吗?

关于评论,我已上传此屏幕截图:

enter image description here

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

1 个答案:

答案 0 :(得分:1)

是的,按照惯例,名称中包含“复制”或“创建”的任何函数都会返回必须释放的内容。

在这种情况下,快速查看CGDataProviderCopyData的文档会显示:

  

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

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