kub*_*ubi 5 memory-management objective-c naming-conventions
我有一个返回a CGPath
并正在生成分析器警告的方法.该方法在协议中声明.以下是生成警告的示例实现:
"在第47行分配并存储到'path'中的对象的潜在泄漏":
- (CGPathRef)createPathForBounds:(CGRect)bounds key:(NSString *)key;
{
if ([key isEqualToString:OvalColumn])
{
CGPathRef path = CGPathCreateWithEllipseInRect(bounds, NULL);
return path;
}
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
以下是生成警告的示例用法,"调用者此时不拥有的对象的引用计数的不正确的减少"
CGPathRef path = [self.delegate createPathForBounds:bounds key:someKey];
// Use the path to do some drawing
CGRelease(path);
Run Code Online (Sandbox Code Playgroud)
我的记忆管理是正确的; 我CGPath
从我的协议方法传回一个保留,我在调用块中释放它,所以我知道警告可以被忽略,但我想完全删除它们.
我错过了一个让分析仪满意的命名约定吗?可以在协议中定义函数吗?子类化将如何工作?
- (CGPathRef)newPathForBounds:(CGRect)bounds key:(NSString *)key
有关该主题的详细说明可在此处找到
或者,您可以选择使用该属性cf_returns_retained
,但最好(imo)支持命名约定.
归档时间: |
|
查看次数: |
424 次 |
最近记录: |