ios:如何解决这个内存泄漏警告

时间:2011-08-10 08:17:39

标签: ios memory-leaks cgcolor

我得到了以下代码:

mainLayer.shadowColor = CGColorCreate( CGColorSpaceCreateDeviceRGB(), components );

当我在xcode中运行Product-> Analyze时,它会给我警告:

Potential leak of an object allocated on line 176

这意味着我不会释放我的CGColor。因此,我认为一个很好的解决方案如下:

CGColorRef shadowColor = CGColorCreate( CGColorSpaceCreateDeviceRGB(), components ); 
mainLayer.shadowColor = shadowColor;
CGColorRelease( shadowColor );

但我仍然得到同样的泄漏警告。我该如何修复这个问题?

2 个答案:

答案 0 :(得分:16)

您还需要释放色彩空间:

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGColorRef shadowColor = CGColorCreate( colorspace, components ); 
mainLayer.shadowColor = shadowColor;
CGColorRelease( shadowColor );
CGColorSpaceRelease(colorspace);

答案 1 :(得分:1)

这是:

CGColorSpaceCreateDeviceRGB()

通过任何更改返回您负责解除分配的对象?我以为我记得有像CGColorSpaceRelease()这样的函数。