IOS: как решить это предупреждение утечки памяти - PullRequest
5 голосов
/ 10 августа 2011

Я получил следующую строку кода:

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

Когда я запускаю Product-> Analyze в xcode, он выдает мне предупреждение:

Potential leak of an object allocated on line 176

Так что это означает, что я неосвободи мой CGColor.Поэтому я подумал, что хорошим решением будет следующее:

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

Но я все равно получаю то же предупреждение об утечке.Как мне исправить проблему?

Ответы [ 2 ]

16 голосов
/ 10 августа 2011

Вам также нужно освободить цветовое пространство:

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGColorRef shadowColor = CGColorCreate( colorspace, components ); 
mainLayer.shadowColor = shadowColor;
CGColorRelease( shadowColor );
CGColorSpaceRelease(colorspace);
1 голос
/ 10 августа 2011

Это:

CGColorSpaceCreateDeviceRGB()

каким-либо изменением, возвращающим объект, за который вы ответственны за освобождение? Я думал, что вспомнил, что есть такая функция, как CGColorSpaceRelease ().

...