我需要发布CFError吗?

时间:2013-04-23 21:17:22

标签: ios memory-management core-foundation

在Core Foundation中,当我使用CFError指针调用函数时,我是否有责任在之后释放该错误?例如:

CFErrorRef error = NULL;
BOOL success = ABRecordSetValue(record, property, value, &error);
if (!success) {
    // handle error
    CFRelease(error);
}

我想我记得在某个地方读过这篇文章但是没有发布就神奇地工作了,但找不到任何可以验证的东西。

1 个答案:

答案 0 :(得分:3)

在CoreFoundation中,如果你使用指针返回东西,那很可能是使用...Create()函数中的一个来分配的(文档中没有说明任何这个?) ,所以你必须释放它。

在Foundation中,“返回”值是自动释放的,因此您不需要(实际上不应该)执行此操作。