首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从内存中卸载GMSMapView?

如何从内存中卸载GMSMapView?
EN

Stack Overflow用户
提问于 2021-10-09 16:35:13
回答 1查看 23关注 0票数 0

我有带有GMSMapView的UIViewController (从故事板连接),如下所示

代码语言:javascript
复制
@IBOutlet weak var map: GMSMapView!

在……里面

代码语言:javascript
复制
override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        
        self.map.delegate = nil
        self.map.clear()
        self.map.removeFromSuperview()
        self.map = nil
          
    }

而且我也有

代码语言:javascript
复制
deinit {print "DEINIT ME"}

Deinit有效-我看到打印消息。

在应用程序运行期间,我必须多次加载和卸载这个视图控制器。Dismiss这是一个视图控制器。每次我使用它--在内存中添加新的GMSMapView。我十次使用控制器-十个GMSMapView对象将在内存图中,因此这与巨大的内存泄漏有关。

当我关闭此视图控制器时,如何从内存中卸载GMSMapView?

EN

回答 1

Stack Overflow用户

发布于 2021-10-10 03:33:12

viewDidDisappear中的代码是无用的。映射视图已经被定义为弱视图,这意味着当视图控制器取消初始化时,它将从内存中释放。如果视图控制器在您取消初始化后仍然存在,请检查您的内存图。如果视图控制器仍然在那里,那么视图控制器中的某些其他属性持有对视图控制器的强引用,并且与映射无关。否则,这可能会成为GMSMap框架中的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69508682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档