在我的一个应用程序中,我正在做很多涉及数组的计算并将它们绘制成图形。计算涉及用户输入,有时,如果用户输入疯狂的值,应用程序将继续执行计算,直到它占用太多内存并被杀死。当用户再次尝试打开应用程序时,它将尝试从上次保存的数据中进行相同的计算并再次崩溃。用户需要删除并重新下载应用程序才能恢复到默认值。
为了解决这个问题,我想在应用程序因内存不足而被终止时转储所有保存的数据。我已经尝试applicationDidReceiveMemoryWarning:
在我didReceiveMemoryWarning:
的 appDelegate 和进行计算的 viewController 中实现。这些函数都没有被调用。经过一番研究,我发现这是因为我阻塞了主运行循环。
我怎样才能最好地处理这种情况?