【问题标题】:What level of memory usage will trigger iOS's memory warning?什么级别的内存使用会触发 iOS 的内存警告?
【发布时间】:2017-10-25 03:05:57
【问题描述】:

我的应用可能会消耗数十 MB 的内存,在极少数情况下会达到 100 MB。我是否需要担心内存警告并实施didReceiveMemoryWarning()?我需要多少时间来释放内存? (我需要将内存中的数据持久化到硬盘中。)

假设我以 iPhone 5 之后的设备为目标。

【问题讨论】:

  • 该公式中有很多变量(正在运行的应用程序数量、iOS 版本、硬件规格等),我认为触发内存警告并不难.
  • 是的,我明白了,我只需要对每个设备型号进行粗略估计。我没有不同的设备可以测试。比如说,如果我的应用在 iPhone 6 上消耗 100MB,我需要担心吗?
  • @NeoWang 它有 1 GB 的 RAM,您不必担心。

标签: ios swift memory


【解决方案1】:

首先,这里是Apple docs中方法didReceiveMemoryWarning讨论

反对

您的应用从不直接调用此方法。相反,这种方法是 当系统确定可用内存量时调用 低。您可以覆盖此方法以释放任何额外的内存 由您的视图控制器使用。如果你这样做,你的实现这个 方法必须在某个时候调用超级实现。

根据这个reddit 线程,即使你处理了这个事件,你的应用程序仍然可以被终止,以便为正在运行的应用程序腾出空间。此外,通常会调用设备上所有应用程序的didReceiveMemoryWarning,而不仅仅是您的。

我希望这个答案没问题,因为这似乎只是引用文档的评论:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 2011-03-23
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 2014-12-24
    相关资源
    最近更新 更多