【问题标题】:How to handle memory warnings in React Native iOS?如何处理 React Native iOS 中的内存警告?
【发布时间】:2020-03-06 00:59:22
【问题描述】:

背景:我正在 Swift 中实现一个原生 iOS 地图组件,以便在我的 React Native 应用程序中使用。当用户缩放/平移时,它会延迟加载图块到地图上,这会导致内存使用量逐渐增加。

问题: 有时,内存使用率过高,我需要清除切片缓存以将其恢复。在 iOS 中,我知道您可以在 UIViewController 中实现 didReceiveMemoryWarning 以释放一些内存,但是 React Native 的原生 iOS 组件没有 UIViewController,只有 UIView

已尝试:我已尝试在 React Native 级别监听内存警告(建议 here),然后调用 RCT_EXTERN_METHOD 公开的本机方法以释放一些内存。但是,我宁愿原生组件在清理内存方面自行处理。

TL;DR:如何在 iOS 级别处理 React Native“原生 iOS”组件的内存警告?

【问题讨论】:

  • 您能否提供更多关于将图块加载到地图上的详细信息,可能还包括代码,哪个组件拥有/管理这些图块?

标签: ios objective-c swift react-native react-native-ios


【解决方案1】:

但是,我宁愿原生组件自行处理 清理内存。

如果您在UIViewController(例如TileViewController)的本机子类中保存和管理磁贴,那么最简单的方法是进行如下清理

class TileViewController: UIViewController {

    // this called automatically on system memory warning
    override func didReceiveMemoryWarning() { 
        super.didReceiveMemoryWarning()

        // clean up cached tiles here
    }
}

【讨论】:

    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 2011-01-23
    • 2010-09-24
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 2016-05-20
    • 2011-12-09
    相关资源
    最近更新 更多