我有一个方法返回CGPath
并生成分析器警告。该方法在协议中声明。这里是生成警告的示例实现:我应该如何避免这种内存警告?
“分配上线47和存储到‘路径’的物体的潜在的泄漏”:
- (CGPathRef)createPathForBounds:(CGRect)bounds key:(NSString *)key;
{
if ([key isEqualToString:OvalColumn])
{
CGPathRef path = CGPathCreateWithEllipseInRect(bounds, NULL);
return path;
}
return NULL;
}
下面是示例性的使用是生成的警告,“这不是在这一点上调用者所拥有的对象的引用计数错误减量”
CGPathRef path = [self.delegate createPathForBounds:bounds key:someKey];
// Use the path to do some drawing
CGRelease(path);
我的内存管理是correc吨;我从协议方法中传回一个保留的CGPath
,并在调用块中释放它,所以我知道警告可以被忽略,但我想完全删除它们。
我错过了一个命名约定,它会使分析器快乐吗? 函数可以在协议中定义吗? 子类化将如何工作?
你可能会透露一下你得到的警告的措辞,或者我们必须猜测吗? –
我的歉意。更新。 – kubi
如果将方法重命名为pathForBounds:key,会发生什么情况? –