iOS应用因内存压力而终止

时间:2015-07-05 19:20:01

标签: ios objective-c xcode

我正在尝试将图像文件与我的应用一起使用。这些图像文件以.zip文件压缩,该文件是从用户从Mail App或Safari打开的。然后将.zip文件(包含图像文件)解压缩为" SSZipArchive"。对于较小的文件(例如5个图像,10KB),这没有任何问题。但对于较大的文件(1900图像,20MB),应用程序崩溃并且很难弄清楚原因,因为它只会在应用程序未调试且未被仪器监视时崩溃。有几次我在使用调试器时遇到了崩溃,但只有当我从Mail App打开.zip-Archive时。然后我得到了消息"由于内存压力而终止了应用程序"。

请帮忙!

2 个答案:

答案 0 :(得分:2)

您可能正在模拟器上进行测试。这永远不可靠,因为你的电脑有很多内存!在设备上进行测试,找出您的应用程序是否使用过多内存的真实条件。如果确实如此,您将收到警告,然后(如果您不对此问题采取任何措施)故意终止。

答案 1 :(得分:0)

问题的根源在于,您无法在iOS下分配那么多内存,否则您的应用/设备会崩溃。一个好的经验法则是你的应用程序在正常运行时可能需要10到20兆的内存,但如果它在任何时候跳到40-80,那么你将面临崩溃的危险。您应该了解在iOS mem blog post下解压缩时内存映像的使用量,并重新编写代码以确保内存使用范围为10到20兆。