iPhone应用程序:运行图像动画时崩溃

时间:2011-08-11 07:05:28

标签: iphone objective-c cocoa-touch animation uiimageview

在我的iPhone应用程序中,我想添加动画,一个接一个地显示图像

  imgView.animationImages = [NSArray arrayWithObjects: 

                           [UIImage imageNamed:@"image1.png"],
                           [UIImage imageNamed:@"image3.png"],
                           [UIImage imageNamed:@"image5.png"],
                            "
                            "
                           [UIImage imageNamed:@"image150.png"],nil];

imgView.animationDuration = 13.00;
imgView.animationRepeatCount = 1.0;  
[imgView startAnimating]; 

如何管理图像以获得流畅的动画和应用程序可以运行而不会崩溃?

我已经压缩了我的图像尺寸。

1 个答案:

答案 0 :(得分:2)

IMO,因为你说应用程序在模拟器下工作正常并在设备上崩溃,导致崩溃的最可能原因是你占用了太多内存并且操作系统杀死了应用程序(在发送至少一个之后)根据我的经验记忆警告。)

一个非常明显的标志是你的应用程序在没有来自调试器的任何错误消息的情况下死亡(如果你尝试在调试器下运行它 - cmd-Y)。

此行为的一个变体是操作系统发送内存警告,您的应用程序卸载了一些资源(这由UIKit为您自动完成),然后您的应用程序再也找不到它们并崩溃。在这种情况下,您应该在错误日志中看到一些有意义的消息。

您可以尝试将构成动画的图像数量减少到50,只是为了查看崩溃是否存在;或者您可以在“仪器”下运行应用程序,以查看内存在时间内的增长情况,并查看崩溃是否与内存峰值相关。顺便问一下:你的图像有多大?可能甚至50可能太多......

另一个可能的原因是imgView.animationImages未被正确保留,但我怀疑这是因为你说在模拟器下一切正常。