我有一个在模拟器中工作正常但在设备上崩溃的动画。我收到以下错误...
编程接收信号:“0”。 由于信号10(SIGBUS)
,调试器已退出一些调查表明UIImages没有被释放,我有内存泄漏。我是新手,所以有人可以告诉我这是否可能是原因?如果你也可以告诉我如何解决它,那将是惊人的。
图像分别为480px x 480px和约25kb。我的代码如下......
NSArray *rainImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"rain-loop0001.png"],
[UIImage imageNamed:@"rain-loop0002.png"],
[UIImage imageNamed:@"rain-loop0003.png"],
[UIImage imageNamed:@"rain-loop0004.png"],
[UIImage imageNamed:@"rain-loop0005.png"],
[UIImage imageNamed:@"rain-loop0006.png"],
//more looping images
[UIImage imageNamed:@"rain-loop0045.png"],
[UIImage imageNamed:@"rain-loop0046.png"],
[UIImage imageNamed:@"rain-loop0047.png"],
[UIImage imageNamed:@"rain-loop0048.png"],
[UIImage imageNamed:@"rain-loop0049.png"],
[UIImage imageNamed:@"rain-loop0050.png"],
nil];
rainImage.animationImages = rainImages;
rainImage.animationDuration = 4.15/2;
rainImage.animationRepeatCount = 0;
[rainImage startAnimating];
[rainImage release];
由于
答案 0 :(得分:0)
我很确定你会崩溃,因为[NSArray arrayWithObjects:]会返回一个自动释放的对象,你要将它存储到rainImage中。然后在底部你再次释放rainImage,从而释放它。
答案 1 :(得分:0)
问题的根源是你的主内存不足,因为你在内存中有太多的解压缩图像,请参阅我对uiimage-animation-causing-app-to-crash-memory-leaks的回答,因为你不应该使用UIImageView.animationImages。