以下是Omni frameworks的代码片段:

CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL/*transform*/, rect);
self->_path = CGPathCreateCopy(path);
CFRelease(path);

为什么在这里使用CFRelease而不是CGPathRelease?它们是相同的吗?如果是,为什么后者存在?

最佳答案

documentation for CGPathRelease:

此功能等效于
CFRelease,除了它不
如果path参数导致错误
一片空白。

除了不使NULL值失败外,您还将获得一点编译时类型安全性,因为参数的类型为CGPathRef而不是CFTypeRef(与void *等效)。

08-28 00:21