使用图像序列的iPhone游戏动画的内存问题

时间:2009-06-03 13:34:42

标签: iphone objective-c animation memory-leaks

我目前正在开发一款iPhone游戏,它使用图像序列(jpg和png与透明胶片)有很多动画。使用Instruments查看泄漏和对象分配,我发现最多的对象分配不到500k。但是,当我们从游戏的一个级别切换到另一个级别时,程序仍会意外崩溃并退出。这是不正常的吗?据我所知,iPhone有128Mb的内存。

更多信息: 我们正在使用CAKeyFrameAnimation(由Apple提供建议)和imageNamed(以便预先缓存图像)。在每个Level对象中,我可以看到当我交换一个级别并加载另一个级别时会调用dealloc。然而,内存似乎不断上升,永远不会被释放回原来的水平。 =(

3 个答案:

答案 0 :(得分:1)

这个问题可能有所帮助Dispelling imageNamed FUD

关于拥有128mb的iPhone,您可能需要查看gamesfromwithin.com(由Noel Llopis)发表的最新帖子,了解您可能在应用中看到的实际RAM数量(使用的OS /邮件/ iPod应用程序)目前略高于预期!)

答案 1 :(得分:1)

我在这个问题的评论中发布了一些关于这个确切问题的提示:

https://stackoverflow.com/questions/846458/iphone-animating-frame-rate-and-number-of-frames/850061#850061

答案 2 :(得分:0)

你可以为它使用autorelease并调用一个显式函数来释放未使用的图像视图,图像分配将会很低,当调用delloac函数时你已经通过明确地重新显示它们已经做了一些工作所以当delloc调用时它将释放大部分内存尝试这个。

谢谢