由于内存压力,iOS应用终止

我正在尝试与我的应用程序使用图像文件。 这些图像文件被压缩在一个.zip文件中,该文件是从邮件应用程序或Safari用户打开的。 .zip文件(包含图像文件)然后由“SSZipArchive”解压缩。 这对小文件没有任何问题(例如5张图像,10KB)。 但是对于更大的文件(1900张图像,20MB),应用程序崩溃,很难找出原因,因为只有在应用程序没有debugging时才会崩溃,而不是由Instruments监视。 有几次我在使用debugging器时崩溃了,但是只有当我从邮件应用打开.zip-Archive时。 然后,我收到消息“由于内存压力,应用程序终止”。

请帮忙!

您可能正在模拟器上进行testing。 这是不可靠的,因为你的电脑有很多的内存! 在设备上进行testing,以查明真实情况下您的应用程序是否使用了太多的内存。 如果这样做,你会得到一个警告,然后(如果你没有对这个问题做些什么),故意终止。

问题的根源在于你无法在iOS下分配太多内存,否则你的应用/设备将崩溃。 一个好的经验法则是,你的应用程序在正常运行时可能需要10到20兆的内存,但是如果在任何时候它跳到40-80,那么你将会有崩溃的危险。 你应该阅读在iOS mem博客文章解压缩时使用多less内存图像,并重写代码,以确保事情保持在10到20兆内存使用范围内。