CGImageCreateWithImageInRect静态分析警告

时间:2012-08-28 11:14:08

标签: objective-c ios uiimage cgimage cgimageref

我有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所指出的,问题是我的功能名称。它包括编译器正在使用的“复制”一词。通过重命名函数解决了这个问题。谢谢waldrumpus。

1 个答案:

答案 0 :(得分:0)

因为您的方法名称以单词copy...开头,所以编译器按惯例假定它将返回该对象的保留副本。这适用于以copy...init...开头的方法名称。

将方法重命名为其他内容,警告应该消失。