CFRelease和CFSafeRelease有什么区别?

时间:2015-02-19 20:34:41

标签: xcode macos

CFRelease和CFSafeRelease有什么区别? 很遗憾,我在提供的文档中找不到任何内容。

谢谢!

1 个答案:

答案 0 :(得分:0)

没有名为CFSafeRelease的标准事物。您可能在本地代码中有一个宏或函数,用于定义类似:

#define CFSafeRelease(x) if (x) { CFRelease(x); x = NULL; }

或类似的东西。这是一个非常常见的宏(虽然它通常被赋予类似MYSafeRelease的名称或其他东西,以防止它看起来像它的内置)。

当然,偶尔你会发现它定义为this way

#define CFSafeRelease( cfobj ) if ( cfobj != NULL ) CFRelease( cfobj );

当然是一个“安全版本”,因为它留下了一个悬垂的指针....