如何发布CGColorRef?

时间:2010-12-24 08:48:09

标签: objective-c xcode

我有以下代码段

CGContextRef ctx = UIGraphicsGetCurrentContext();  
CGColorRef color = CreateDeviceRGBColor(r,g,b,a);
CGContextSetFillColorWithColor(ctx, color);

当我运行Build&在Xcode中分析它给了我color的“潜在泄漏......”警告。我该如何发布呢?

2 个答案:

答案 0 :(得分:3)

使用CFRelease(color);。这适用于所有类似对象(例如,所有Core Foundation对象)。

答案 1 :(得分:2)

mrrueg的答案可行,但使用CGColorRelease(color)稍微安全一些,因为如果颜色恰好是NULL,这不会引发错误。作为参考,您还应该在所有者尚未保留相关颜色的情况下使用CGColorRetain(color)。在这种情况下,这不是必需的,因为CreateDeviceRGBColor返回一个保留的CGColorRef。