我目前正在开发一款iPhone游戏,它使用图像序列(jpg和png与透明胶片)有很多动画。使用Instruments查看泄漏和对象分配,我发现最多的对象分配不到500k。但是,当我们从游戏的一个级别切换到另一个级别时,程序仍会意外崩溃并退出。这是不正常的吗?据我所知,iPhone有128Mb的内存。
更多信息: 我们正在使用CAKeyFrameAnimation(由Apple提供建议)和imageNamed(以便预先缓存图像)。在每个Level对象中,我可以看到当我交换一个级别并加载另一个级别时会调用dealloc。然而,内存似乎不断上升,永远不会被释放回原来的水平。 =(
答案 0 :(得分:1)
这个问题可能有所帮助Dispelling imageNamed FUD。
关于拥有128mb的iPhone,您可能需要查看gamesfromwithin.com(由Noel Llopis)发表的最新帖子,了解您可能在应用中看到的实际RAM数量(使用的OS /邮件/ iPod应用程序)目前略高于预期!)
答案 1 :(得分:1)
我在这个问题的评论中发布了一些关于这个确切问题的提示:
答案 2 :(得分:0)
你可以为它使用autorelease并调用一个显式函数来释放未使用的图像视图,图像分配将会很低,当调用delloac函数时你已经通过明确地重新显示它们已经做了一些工作所以当delloc调用时它将释放大部分内存尝试这个。
谢谢