0

我有 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。

4

1 回答 1

0

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

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

于 2012-08-28T11:33:35.300 回答