osx - 潜在的泄漏( 使用垃圾收集时)

  显示原文与译文双语对照的内容
0 0

我正在使用自动垃圾收集运行 Cocoa 应用程序分析,并接收以下错误消息:


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

分析器稍后会报告错误,在下面的方法中。 double largestValue = 0.0 is出现错误,即使它引用了行 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

为什么我会得到分析错误?

--编辑---

谢谢,Chuck 这是工作的。这是我替换了相关线路的内容: !


self.positiveValueColor = (CGColorRef)CFMakeCollectable(CGColorCreateGenericRGB(0.0, 0.0, 1.0, 1.0));

时间: 原作者:

0 0

CGColorRefs通常不适合进行垃圾收集。 你应该用 CFMakeCollectable() 这就是警告。

原作者:
...