Я запускаю анализ на моем приложении Какао с автоматической сборкой мусора и получаю следующее сообщение об ошибке:
Potential leak (when using garbage collection) of an object allocated on line 1243
Это то, что находится в строке 1243:
self.positiveValueColor = CGColorCreateGenericRGB(0.0, 0.0, 1.0, 1.0);
Вот определение свойства self.positiveValueColor:
@property (assign) CGColorRef positiveValueColor
Впрочем, анализатор сообщает об ошибке позже, ниже в методе под ним."doublegestValue = 0.0" - это место, где появляется ошибка, даже если она ссылается на строку 1243:
Вот весь метод для справки:
- (void) setDefaultColors {
if (self.positiveValueColor == nil) {
self.positiveValueColor = CGColorCreateGenericRGB(0.0, 0.0, 1.0, 1.0);
}
if (self.negativeValueColor == nil) {
self.negativeValueColor = CGColorCreateGenericRGB(1.0, 0.0, 0.0, 1.0);
}
if (self.zeroValueColor == nil) {
self.zeroValueColor = CGColorGetConstantColor(kCGColorBlack);
}
}
- (BOOL) largestValueIsPositive {
double largestValue = 0.0;
if (self.pv != nil) {
double value = [self.pv doubleValue];
if (fabs(value) > fabs(largestValue)) {
largestValue = value;
}
}
... // method continues on
Почему я получаю эту ошибку анализа?
- РЕДАКТИРОВАТЬ -
Спасибо, Чак!Это сработало.Вот что я заменил соответствующие строки:
self.positiveValueColor = (CGColorRef)CFMakeCollectable(CGColorCreateGenericRGB(0.0, 0.0, 1.0, 1.0));