我有一个UIImage类别的以下功能部分:
- (UIImage *)copyImageAtRect:(CGRect)rect {
CGImageRef imageToSplit = self.CGImage;
CGImageRef partOfImageAsCG = CGImageCreateWithImageInRect(imageToSplit, rect);
UIImage *image = [UIImage imageWithCGImage:partOfImageAsCG];
CGImageRelease(partOfImageAsCG);
return image;}但是,当我分析我的代码时,我会得到以下静态分析警告:“带有+0保留计数的对象返回给调用者,其中期望有+1 (拥有)保留计数”,并突出显示返回图像行。
我试过改变很多东西,但似乎无法弄明白为什么这会成为一个潜在的漏洞。
任何帮助都是非常感谢的。
非常感谢。
正如waldrumpus所指出的,编辑时,问题是函数的名称。它包括编译器所使用的“复制”一词。通过重命名函数来修正这个问题。谢谢你跳华尔杜斯。
发布于 2012-08-28 11:33:35
因为您的方法的名称以单词copy...开头,所以编译器按照惯例假定它将返回对象的保留副本。这涉及以copy...或init...开头的方法名。
将该方法重命名为其他方法,则警告将消失。
https://stackoverflow.com/questions/12158073
复制相似问题