2

我有一个应用程序,我正在对其进行分析。我对仪器很陌生,我也是一个很新的 ios 开发人员。我正在使用 ios6 并且我有一个非常不寻常的泄漏。我在 UIImage 上创建了一个类别,并添加了帮助方法来返回图像以使用 capinset。我的类别看起来像这样,

@implementation UIImage (Helpers)

+(UIImage*)resizableImageWithName:(NSString *)imageName andCapInsets:(UIEdgeInsets)insets{
    UIImage *image = [UIImage imageNamed:imageName];
    return [image resizableImageWithCapInsets:insets];
}

@end

仪器显示该区域有 3/4 泄漏,同一个地方,我无法找出原因。是这样吗,我必须发布我在类别中创建的新图像,如果我发布它我要返回什么?任何人都可以解释我在这里泄漏内存的原因。

我像这样使用它;

[self.progressView setTrackImage:[UIImage resizableImageWithName:@"progress_bar_background.png" andCapInsets:UIEdgeInsetsMake(2, 2, 2, 2)]];

以这种方式使用这种方法有什么问题吗?

4

1 回答 1

1

Instruments 向您展示的方法是分配泄漏内存的地方——不一定是泄漏内存的地方。实际上,您的方法在内存管理方面是正确的。

因此,您最好检查如何处理返回的UIImage对象......如果此提示不能帮助您找到泄漏原因,请发布更多代码。

于 2013-01-10T18:20:16.507 回答