2011-08-10 34 views
5

tôi có các dòng mã sau:ios: làm thế nào để giải quyết cảnh báo rò rỉ bộ nhớ này

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

Khi tôi chạy theo sản phẩm> Phân tích trong xcode nó mang lại cho tôi những cảnh báo:

Potential leak of an object allocated on line 176 

Vì vậy mà có nghĩa là tôi không giải phóng CGColor của mình. Do đó, tôi nghĩ một giải pháp tốt sẽ là như sau:

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

Nhưng tôi vẫn nhận được cảnh báo rò rỉ tương tự. Làm thế nào để sửa chữa vấn đề?

Trả lời

16

Bạn cũng cần giải phóng không gian màu:

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

Đây có phải là:

CGColorSpaceCreateDeviceRGB() 

bởi bất kỳ sự thay đổi trở về một đối tượng bạn có trách nhiệm deallocating? Tôi nghĩ rằng tôi nhớ có một chức năng như CGColorSpaceRelease().

Các vấn đề liên quan