ARC& A的UIImage内存泄漏故事板

时间:2014-12-09 19:42:15

标签: ios objective-c memory-leaks uiimageview uiimage

我正在接收内存泄漏并最终在处理应用程序时出现内存不足警告,该应用程序需要循环浏览许多大图像以响应用户在屏幕上拖动。为了做到这一点,我通过以下代码用新图像更新每个更改:

@property (nonatomic) IBOutlet UIImageView *rotationView;
.
.
.
// Update the displayed image to the specified image index.  Loads one image at
// a time and lets ARC handle release of old images.
-(void) displayNewImage:(int)imageIndex {
    // Initialize rotation image string (to be used when loading the image)
    NSMutableString *rotationImage = [[NSMutableString alloc] init];
    [rotationImage setString:[self rotationImagePrefix]];
    [rotationImage appendString:[NSString stringWithFormat:@"%05d",imageIndex]];

    [self.rotationView setImage:[UIImage imageNamed:rotationImage]];
}

我发现类似的帖子表明使用+ [UIImage imageNamed:]存在已知的内存泄漏,并建议使用+ [UIImage imageWithContentsOfFile:]但是这两种方法似乎都没有积极地影响性能。用+ [UIImage imageWithContentsOfFile:]进行测试实际上看到了内存泄漏的显着增加。

enter image description here 这是在使用imageNamed时。下拉列表中的每个malloc实例是7.00 KB引用的另一个实例。使用imageWithContentsOfFile看到这些泄漏在同一测试中翻了两番,告诉我imageWithContents没有缓存内容,而是每次创建新的实例,这是预期的。这里的一个问题是,当需要创建新图像时,如何在下一个周期发布此图像。

我发现的所有类似问题似乎都证实这是ImageIO库中已知的内存泄漏。对于这方面是否有经过验证的解决方案,或者我们是否仍然坚持使用Apple提供的UI框架,错误和所有内容?

0 个答案:

没有答案