ARC中的UIImage内存泄漏问题

时间:2014-04-29 11:25:13

标签: ios memory-leaks uiimage automatic-ref-counting instruments

我们使用以下代码在图片视图中设置图片,

@autoreleasepool {
    UIImageView *titleView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ImgTitle" ofType:@"png"]]];
    }

仪器显示上面两行中的内存泄漏。我们检查了Xcode 5.0.1到iOS7。

任何人都建议你解决这个问题。

2 个答案:

答案 0 :(得分:0)

尝试更改

@autoreleasepool
{
UIImageView *titleView = [[UIImageView alloc]initWithImage:
                         [UIImage imageWithContentsOfFile:
                         [[NSBundle mainBundle]pathForResource:
                         @"ImgTitle" ofType:@"png"]]];
}

UIImageView *titleView = [[UIImageView alloc]initWithImage:
                             [UIImage imageWithContentsOfFile:
                             [[NSBundle mainBundle]pathForResource:
                             @"ImgTitle" ofType:@"png"]]];

使用titleView后,您可以将其设置为nil来处理内存,如下所示。

如果项目启用了ARC,请使用

titleView=nil;

如果没有,

titleView release];
titleView=nil;`

这将解决您的问题。

答案 1 :(得分:0)

对我而言,您的代码正在显示

Dead Store : Value stored to 'titleView' during its initialization is never read

这也是有道理的。 没有内存泄漏警告