如何处理 React Native iOS 中的内存警告?
Posted
技术标签:
【中文标题】如何处理 React Native iOS 中的内存警告?【英文标题】:How to handle memory warnings in 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”组件的内存警告?
【问题讨论】:
您能否提供更多关于将图块加载到地图上的详细信息,可能还包括代码,哪个组件拥有/管理这些图块? 【参考方案1】:但是,我宁愿原生组件自行处理 清理内存。
如果您在UIViewController
(例如TileViewController
)的本机子类中保存和管理磁贴,那么最简单的方法是进行如下清理
class TileViewController: UIViewController
// this called automatically on system memory warning
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// clean up cached tiles here
【讨论】:
以上是关于如何处理 React Native iOS 中的内存警告?的主要内容,如果未能解决你的问题,请参考以下文章
React Native - 如何处理 TextInput onChangeText 事件在执行函数之前等待?
React Native:您如何处理使屏幕顶部的图形时间等难以看到的问题?
如何处理第三方组件依赖与 react native 或其他组件冲突?