CFRelease和CFSafeRelease有什么区别? 很遗憾,我在提供的文档中找不到任何内容。
谢谢!
答案 0 :(得分:0)
没有名为CFSafeRelease
的标准事物。您可能在本地代码中有一个宏或函数,用于定义类似:
#define CFSafeRelease(x) if (x) { CFRelease(x); x = NULL; }
或类似的东西。这是一个非常常见的宏(虽然它通常被赋予类似MYSafeRelease
的名称或其他东西,以防止它看起来像它的内置)。
当然,偶尔你会发现它定义为this way:
#define CFSafeRelease( cfobj ) if ( cfobj != NULL ) CFRelease( cfobj );
当然不是一个“安全版本”,因为它留下了一个悬垂的指针....