2011-08-10 42 views
5

我得到了下面的代码行:IOS:如何解决内存泄漏警告

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

当我运行产品 - >在Xcode分析它给我的警告:

Potential leak of an object allocated on line 176 

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

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

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

回答

16

您也需要释放色彩空间:

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

是这样的:

CGColorSpaceCreateDeviceRGB() 

任何改变返回一个对象,你是负责释放?我想我记得有一个像CGColorSpaceRelease()这样的函数。