iOS允许应用程序使用多少内存?

7
我正在制作一个使用大量相当大的图像文件的应用程序。我注意到当它们全部加载到我的iPhone 3G(128 MB RAM)上时,它会崩溃,但在第三代iPod(256 MB RAM)上测试时不会崩溃。所以我认为每个应用程序允许使用一定的百分比?我的应用程序有大约30个图像,每个图像大小约为440k,总共13.2MB。它们需要快速交换,因此释放未使用的图像从内存中删除似乎不是一个好主意...
编辑:
应用程序根据手机的倾斜方式交换图像。它是来自3D场景的30张图像,因此当您移动它时,它会改变透视图。它需要尽可能平滑。

2
我相信情况比你想象的要糟糕:一旦加载了UIImage,它很可能占用未压缩的大小而不是压缩的大小。你应该使用Instruments工具来查看你实际上使用了多少内存。 - Steven Fisher
“pretty quickly”有多快?除了实时快速切换之外,其他任何速度都相当无关紧要。请提供更多关于速度的细节以及为什么需要将这些图像存储在内存中,因为现在很难理解一次性需要如此多的内存的用例。 - David Liu
你必须得硬着头皮上。一个反应稍慢的应用总比一个崩溃的应用好。不过,你可以考虑缩小图片的尺寸,并想办法节省内存。肯定有方法可以实现按需加载而不会阻塞用户界面,例如预加载当前视角附近的图片,同时释放远离视线的图片。 - David Liu
我感觉有点傻,因为我在这上面花了两天时间...那个人发送的图片是针对iPad版本的,而不是iPhone。所以它们太大了两倍...啊好吧...现在可以正常工作了。 - Marty
1个回答

10
答案是:您可以使用尽可能多的内存,直到操作系统抱怨为止。
绝对的内存限制是不存在的,它完全取决于手机的内存大小,操作系统及其相关服务占用的内存大小以及月份时间(开个玩笑,但您明白我的意思)。
您应该将这些大型图像文件缩小以适合内存,或者更进一步,考虑到屏幕很小并且只能在任何特定时间查看有限的内容,不要一次性加载所有图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接