1

假设我正在使用CGColorSpaceRef. 我想知道CGColorSpaceRef通过调用CFRelease和使用释放之间是否有区别CGColorSpaceRelease

即,这之间的区别:

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();

// do stuff

CFRelease(colorspace);

与做:

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();

// do stuff

CGColorSpaceRelease(colorspace); 
4

2 回答 2

5

CGColorSpace 参考

此函数等价于 CFRelease,不同之处在于如果 cs 参数为 NULL,它不会导致错误。

于 2012-07-26T19:21:00.327 回答
2

任何一个都可以接受。但是,第二个将检查NULL,因此它可以让您跳过一行代码。您必须始终NULL在致电前进行检查CFRelease()。如果你不这样做并且NULL被传入,它将崩溃。

于 2012-07-26T19:34:14.427 回答