0

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

问题是:我的应用程序在一段时间后进入后台。

我在堆栈、谷歌和苹果文档上看到并尝试了很多东西,但没有得到令人满意的解决方案。
我有三个问题。
(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 张图像。
欢迎任何帮助、建议、链接或教程。

4

1 回答 1

0

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

于 2013-06-21T04:33:53.663 回答