2010-04-26 126 views
0

我是新的iPhone应用程序开发,我需要一些帮助。我有一个30张图片的列表,我必须以0.1秒为间隔进行动画和显示。 我把所有的图像在一个阵列使用此动画的图像大小!

imageletter.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"], ...... ,nil] 

,然后使用这些语句设置动画,

[imageletter setAnimationDuration:16]; 
[imageletter startAnimating]; 
[NSTimer scheduledTimerWithTimeInterval:mytime target:self selector:@selector(StopAfterCertainTime) userInfo:nil repeats:NO]; 

现在的问题是,每个图像的大小为8KB,它运行罚款iPhone模拟器,但在设备上崩溃。当我使用30个其他每个4kb的图像时,它在模拟器和设备上运行良好。任何人都可以告诉我这种任务的理想尺寸是多少? 感谢

回答

0

我建议你先搞清楚为什么它崩溃的设备上(看堆栈回溯,例如)。每个8kb的30个图像听起来不像很多空间(240kb,对吧?),所以它不可能是一个简单的“内存不足”情况。

对于您分配的对象的大小而言,更有可能存在更深层次的问题(例如,在对象被释放后继续使用对象)。如果是这样,使用较小的图像不能解决问题,它只是隐藏它(现在)。

查看iPhone开发指南的Debugging Applications部分,了解关于查看崩溃日志的信息,以及如何设置NSZombieEnabled来检测对已发布对象的访问。

+0

压缩图像的大小可能为8 kb,但用于实际显示的这些图像的未压缩版本可能比此大得多。通过查看Memory Monitor仪器,您应该能够看到这是否会导致显着的内存峰值。 – 2010-05-04 16:05:58