“来自调试器的消息:由于内存问题而终止”的任何通知或观察者?
Posted
技术标签:
【中文标题】“来自调试器的消息:由于内存问题而终止”的任何通知或观察者?【英文标题】:Any notification or observer for 'Message from debugger: Terminated due to memory issue'? 【发布时间】:2017-08-09 12:45:08 【问题描述】:在我的应用程序中,我正在下载一些视频,一段时间后设备内存已满,并且由于哪个应用程序被操作系统终止并显示消息,
来自调试器的消息:由于内存问题而终止
在控制台上。 应用程序终止是可以的,但从用户的角度来看,用户无法识别突然终止背后的原因。
所以在应用程序终止之前,我想显示类似“内存不足”的消息。
我担心的是,是否有任何机制或通知来检查我们的内存是否已满 可以显示警报吗?
Support: Swift 3.0, Xcode 8.3, ios 10.x
【问题讨论】:
如果您的应用因内存问题而终止,则您的代码很可能存在应该修复的内存泄漏。 不是内存泄漏问题。我只想显示有关该问题的警告消息。 【参考方案1】:您可以使用此方法。
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
【讨论】:
是的!就是这样......但是我在应用程序中实现的几乎所有视图控制器都调用了这个API,但方法中没有回调。奇怪! 按照硬件>模拟内存警告尝试使用设备或在模拟器中启用内存警告,看看会发生什么。 仅使用设备。它发生在存储空间低的设备上(目前有大约 500MB 可用空间)。我的意思是在低存储设备上会出现问题。所以在应用程序终止之前,至少向用户显示警告消息会是一种很好的体验吗?【参考方案2】:试试下面的发布通知观察者。
NotificationCenter.default.addObserver(forName: .UIApplicationDidReceiveMemoryWarning, object: nil, queue: nil) [weak self] notification in
self?.removeAllObjects() // write your memory release code.
【讨论】:
以上是关于“来自调试器的消息:由于内存问题而终止”的任何通知或观察者?的主要内容,如果未能解决你的问题,请参考以下文章