我的申请是在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张图像 欢迎任何帮助,建议,链接或教程。
答案 0 :(得分:0)
不使用imageview.animationImages是您需要做的第一件事,以控制您的内存使用。永远不要使用该API,因为它可以让你轻松拍摄自己的脚。请参阅imageview-animation-getting-more-memory或unpredictable-crash-due-to-uiview-animations或iphone-app-memory-leak-with-uiimage-animation-problem-testing-on-device。