2011-08-10 39 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()這樣的函數。