0

我有一个在模拟器中运行良好但在设备上崩溃的动画。我收到以下错误...

节目接收信号:“0”。由于信号 10 (SIGBUS),调试器已退出

一些调查表明 UIImages 没有被释放并且我有内存泄漏。我是新手,所以有人可以告诉我这是否是可能的原因吗?如果您也可以告诉我如何解决它,那将是惊人的。

图片大小为 480 像素 x 480 像素,每张约 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];

谢谢

4

2 回答 2

0

我很确定您正在崩溃,因为 [NSArray arrayWithObjects:] 返回一个自动释放的对象,您将其存储到rainImage。然后在底部你再次释放rainImage,从而过度释放它。

于 2010-06-07T20:30:17.123 回答
0

问题的根源是您的主内存用完了,因为内存中有太多解压缩的图像,请参阅我对uiimage-animation-causing-app-to-crash-memory-leaks 的回答,因为您不应该是使用 UIImageView.animationImages。

于 2013-06-20T22:33:56.853 回答