【发布时间】:2013-06-20 16:22:56
【问题描述】:
使用核心文本,我不知道什么时候应该调用释放函数:
无效 CFR 释放 ( CFTypeRef cf );
我应该调用上面的函数并传递以下参数:
CGContextRef contextRef;
CGMutablePathRef leftColumnPath;
【问题讨论】:
标签: iphone ios objective-c
使用核心文本,我不知道什么时候应该调用释放函数:
无效 CFR 释放 ( CFTypeRef cf );
我应该调用上面的函数并传递以下参数:
CGContextRef contextRef;
CGMutablePathRef leftColumnPath;
【问题讨论】:
标签: iphone ios objective-c
除非创建/复制它们,否则不应调用 CFRelease。
Core Foundation 函数的名称表明您何时拥有返回的对象: 在名称中嵌入“创建”的对象创建函数; 名称中嵌入了“复制”的对象复制函数。 如果您拥有一个对象,则您有责任在完成该对象后放弃所有权(使用 CFRelease)。
因此,如果您使用某些包含“复制”或“创建”的 CF 方法,您应该对它们调用 CFRelease。否则你可以直接使用它们。
【讨论】:
CGPathCreateMutable 创建了一个路径,因此当您使用完它时,您应该在其上调用CGPathRelease。 PS。实际上,CGXXXRelease 和 CFRelease 是一样的。唯一的区别是“指定的释放方法”(如 CGPathRelease)可以应用 NULL 作为输入,而 CFRelease 不能。在您的情况下,您可以调用 CFRelease 或 CGPathRelease 以避免泄漏。