【发布时间】:2016-03-16 13:59:50
【问题描述】:
我正在为 >=iOS8 设备开发 iOS 应用程序。我的应用程序是内存密集型的,这成为一个问题,因为应用程序可能会崩溃。我有 CrashLoggers 在下次启动期间报告应用程序崩溃。但是,在某些情况下,应用程序可能会消耗比平常更高的内存并且操作系统可能会终止它。是否有任何委托可用于检测操作系统强制应用终止?
我尝试了[AppDelegate applicationWillTerminate:] 和[AppDelegate applicationDidReceiveMemoryWarning:],但它们大部分都会给我误报。问题是这不是例外,而是操作系统发出的系统信号,用于终止我试图在事件范围内检测到的应用程序。
我是一名新程序员。如果我理解错误或做出不切实际的假设,请告诉我。
Is there any method in appDelegate which is called when application crashes?
我明白预防问题胜于治疗。但在这里我试图检测是否会有问题。这不像应用程序总是崩溃。在 iPhone 4s/iPad Air 1 等非常旧的设备上可能存在一些边缘案例场景或用户,应用程序可能在运行时(可能)遇到问题。所以,我需要一个日志机制来解决这个问题。
应用程序的运行时间在最坏情况下约为 120MB,虽然很高,但远低于过高的范围。虽然该应用程序具有许多功能,但应用程序中的图像处理难以在保持质量的同时执行,并且还难以根据内存进行配置(峰值取决于大小、图像质量、照明等)。所以我的应用程序完全在边界线内,我正在寻求方法来检测用户使用时应用程序是否跨越了这个边界。
我完全同意您提出的优化(或修复崩溃)建议,我会尽力优化(或调试)应用程序。
【问题讨论】:
-
"我的应用程序占用大量内存,这成为一个问题,因为应用程序可能会崩溃" - 什么?一个应用程序应该永远崩溃 - 我个人希望你不能对它做出反应,修复你的代码,不要对崩溃做出反应,修复导致崩溃的代码。您使用了多少内存,更重要的是 - 为什么?
-
我无法将我的问题与上述帖子联系起来。两者都是非常不同的问题。
标签: ios objective-c memory-management