以下是Omni frameworks的代码片段:
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL/*transform*/, rect);
self->_path = CGPathCreateCopy(path);
CFRelease(path);
为什么这里使用CFRelease而不是CGPathRelease?它们是否相同,如果是,为什么后者存在?
答案 0 :(得分:4)
来自documentation for CGPathRelease:
此功能相当于 CFRelease,但它没有 如果路径参数导致错误 是NULL。
除了NULL
值没有失败之外,您还可以获得一点编译时类型安全性,因为参数类型为CGPathRef
而不是CFTypeRef
(这是相当于void *
)。