因内存压力而终止

iCo*_*ode 1 memory iphone objective-c instruments ios

当我的应用程序在我的iPhone上运行背景超过2小时时,我遇到了问题,然后在Xcode中经常出现错误"终止由于内存压力".我可以做什么,我的应用程序在后台运行没有问题?这是仪器的截图: 截图

Tec*_*eks 13

简单地说,这很可能不是你的错.iOS低内存杀手(Jetsam名称的一个相当激进的内核线程)使用"优先级带"来维持候选进程在低内存中杀死,并且几乎每个人都是候选者 - 后台进程比前景进程更有可能.Jetsam中的优先乐队,来自newosxobook.com/articles/MemoryPressure.html.(图片取自Jetsam的优先乐队,来自http://newosxbook.com/articles/MemoryPressure.html)

你可以做的是通过响应低内存事件(即实现didReceiveLowMemoryWarning)并卸载任何你不是严格要求的图像/ UIImageViews来获得更多的喘息空间 - 即使你做了一点,它也可以帮助你生存.此外,您没有指出您正在使用哪个UIBackgroundMode - 这可能会有所帮助(它在内核中定义应用程序配置文件,从而稍微调整Jetsam).