Imageview和/或Sound有内存问题(进入后台)

时间:2013-04-18 10:04:35

标签: memory-management ios6 uiimageview core-animation automatic-ref-counting

我的申请是在ARC 在我的应用程序的任何视图中都有一个背景图像,在该图像上,一些动画不断重复图像。

问题是:我的申请会在一段时间后进入后台。

我在堆栈,谷歌和苹果doc上看到并尝试过很多东西,但没有得到满意的解决方案 我有三个问题。
(1)如何阻止这个?
(2)是否有其他方法可以在ARC中手动释放内存 (3)如果我使用[self.view removeFromSuperview];对于UIView那么还有一些内存没有在ARC中发布?

动画的MyCode是

    imageview = [[UIImageView alloc] init];
    imageview.image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluecandy08" ofType:@"png"]];
    [self.view addSubview:imgBubbleAnimation];

    imageview.animationImages = [NSArray arrayWithObjects:
                                          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluecandy01" ofType:@"png"]],
                                          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluecandy02" ofType:@"png"]],
                                          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluecandy03" ofType:@"png"]],
                                          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluecandy04" ofType:@"png"]],
                                          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluecandy05" ofType:@"png"]],
                                          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluecandy06" ofType:@"png"]],
                                          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluecandy07" ofType:@"png"]],
                                          nil];
    [imageview setAnimationRepeatCount:0]; // 0 for continuous
    imageview.animationDuration =3.0;
    [imageview startAnimating];

声音文件(在点击特定按钮时播放)

URL = [NSURL fileURLWithPath: [[NSBundle mainBundle]
                                     pathForResource:@"ect1a" ofType:@"mp3"]];
audioSound = [[AVAudioPlayer alloc] initWithContentsOfURL:URL error:nil];
audioSound.delegate = self;
audioSound.volume = 5.0;
audioSound.numberOfLoops = 0;
[audioSound play];

我有一个视图的15个小声音文件和一个视图的15个动画 在每个特定的动画中,最少有15张图像 欢迎任何帮助,建议,链接或教程。

1 个答案:

答案 0 :(得分:0)

不使用imageview.animationImages是您需要做的第一件事,以控制您的内存使用。永远不要使用该API,因为它可以让你轻松拍摄自己的脚。请参阅imageview-animation-getting-more-memoryunpredictable-crash-due-to-uiview-animationsiphone-app-memory-leak-with-uiimage-animation-problem-testing-on-device