我有自定义UIView
绘图drawRect
。
我不太了解 C API,所以我不确定它们需要什么内存规则。Objective-C 规则非常简单,声明您通过init
retain
或发布您拥有的任何东西,copy
但 C 函数CGGradientCreateWithColorComponents
不是 Objective-C,并且产品 > 分析报告它是潜在的泄漏。
是否需要发布该函数的结果,如果需要,如何发布?总的来说,当涉及到这些 API 时,是否有任何简单的方法可以知道某个函数是否正在分配您需要手动释放的内存?
更新:这是代码,感谢到目前为止答案中的信息。我现在收到incorrect decrement
错误:
CGGradientRef theGradient=[self makeGradient:YES];
//do something with theGradient in my drawing
CGGradientRelease(theGradient); // this line Analyze says incorrect decrement of object not owned by caller
在makeGradient
我有:
- (CGGradientRef)makeGradient:(BOOL)red{
CGGradientRef gradient;
//create my gradient
return gradient;
}