Xcode CFRelease和CFSafeRelease有什么区别?
CFRelease和CFSafeRelease有什么区别? 不幸的是,我在提供的文档中找不到任何内容Xcode CFRelease和CFSafeRelease有什么区别?,xcode,macos,Xcode,Macos,CFRelease和CFSafeRelease有什么区别? 不幸的是,我在提供的文档中找不到任何内容 谢谢 没有标准的东西叫做CFSafeRelease。您的本地代码中可能有一个宏或函数,它定义了如下内容: #define CFSafeRelease(x) if (x) { CFRelease(x); x = NULL; } 或者类似的。这是一个非常常见的宏,尽管它通常被命名为MYSafeRelease或其他名称,以防止它看起来像是内置的 当然,有时您会发现它的定义如下: 这当然不是一个安全的
谢谢 没有标准的东西叫做CFSafeRelease。您的本地代码中可能有一个宏或函数,它定义了如下内容:
#define CFSafeRelease(x) if (x) { CFRelease(x); x = NULL; }
或者类似的。这是一个非常常见的宏,尽管它通常被命名为MYSafeRelease或其他名称,以防止它看起来像是内置的
当然,有时您会发现它的定义如下:
这当然不是一个安全的版本,因为它会留下一个悬空的指针……什么是CFSafeRelease?这不是苹果的东西。
#define CFSafeRelease( cfobj ) if ( cfobj != NULL ) CFRelease( cfobj );