Iphone iOS应用程序在从后台返回后从内存崩溃警告,但不是在此之前?

Iphone iOS应用程序在从后台返回后从内存崩溃警告,但不是在此之前?,iphone,objective-c,ios,memory,memory-management,Iphone,Objective C,Ios,Memory,Memory Management,我有一个奇怪的情况。我有一个相当内存密集的进程(图像处理)正在运行,但我已经解决了所有的问题,并且它99%的时间都运行得很好 但是,如果我将应用程序置于非活动或后台状态,当返回并尝试运行同一进程时,我会收到内存警告,然后应用程序崩溃 我用仪器分析了两个用例中的内存占用,内存占用完全相同。但是,如果我不将应用程序放在后台(或非活动),它不会给我任何内存错误,并且可以很好地完成。在将它放在后台(或非活动)的用例中,我得到了内存错误,它崩溃了 有人知道这方面的消息吗?我一直在搜索net/irc/sta

我有一个奇怪的情况。我有一个相当内存密集的进程(图像处理)正在运行,但我已经解决了所有的问题,并且它99%的时间都运行得很好

但是,如果我将应用程序置于非活动或后台状态,当返回并尝试运行同一进程时,我会收到内存警告,然后应用程序崩溃

我用仪器分析了两个用例中的内存占用,内存占用完全相同。但是,如果我不将应用程序放在后台(或非活动),它不会给我任何内存错误,并且可以很好地完成。在将它放在后台(或非活动)的用例中,我得到了内存错误,它崩溃了

有人知道这方面的消息吗?我一直在搜索net/irc/stack over/apple文档,试图找到答案。苹果(iOS)是否减少了我从后台返回后应用程序允许运行的内存量?有没有办法防止这种情况?还是我忽略了其他更简单的解决方案


(注意,没有内存泄漏)

也许你的应用程序在后台收到内存警告,而你对此的反应是不同的:例如,在后台,所有视图控制器都可以在收到内存警告时卸载其内容,但在前台,将不会卸载活动视图控制器。如果某个视图控制器或其对象被设置为应用程序中某个其他进程的委托,而该进程不响应内存不足警告,则最终可能会向解除分配的实例发送消息


如果你不知道崩溃的细节,你真的应该包括在内,以及更多关于应用程序结构的信息,这是我最好的猜测

好吧,我明白了-iOS没有做任何蠢事,当然是开发人员:)我的项目中还有另一个组件(ViewController),它在从后台返回时做了一些事情,比如分配内存。然而,这个视图不是活动的,因此分配它所需的内存被证明是无用的。清理代码后,我没有遇到任何内存错误。

只是为了检查,在启动任何后台进程时,它应该在自动释放池中。后台进程与主线程并行运行。因此,在后台执行任何任务时,我们都应该查看内存。这是常见的泄漏错误。另外,处理UIKit的操作总是在主线程上运行。因此,如果您通过后台处理任何数据,并希望在UI上显示这些数据,那么这些数据将加载到主线程。

请在Q中添加错误消息。没有错误消息,因为这是导致崩溃的内存不足错误。在进入或离开前台/辞职/变为活动状态时,您是否在应用程序委托方法中执行任何操作?I我在后台没有收到任何内存错误,当我恢复应用程序时,所有视图都已加载。但是,当我在应用程序上点击“go”开始处理图像时,它会因为内存不足而崩溃,但只有在从后台返回后才会崩溃。(我也在与Spongey合作)是的,问题不是应用程序在后台崩溃,它会回到前台,问题是,当我们继续使用该应用程序时,它会由于内存不足而崩溃。如果我们做了完全相同的行为,但先关闭快速应用程序,效果很好,没有一个警告。那么你的应用程序如何响应内存不足警告?你能摆脱什么?很抱歉,我们在那里交叉了评论-你没有收到任何内存不足的警告,只是噗!跑了?我不确定我是否能帮助你,那么,我在这方面没有任何经验。@spongey在模拟器中有一个选项,可以在运行你的应用程序时模拟内存警告。检查在这种情况下显示了什么。。?