我有带有GMSMapView的UIViewController (从故事板连接),如下所示
@IBOutlet weak var map: GMSMapView!在……里面
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.map.delegate = nil
self.map.clear()
self.map.removeFromSuperview()
self.map = nil
}而且我也有
deinit {print "DEINIT ME"}Deinit有效-我看到打印消息。
在应用程序运行期间,我必须多次加载和卸载这个视图控制器。Dismiss这是一个视图控制器。每次我使用它--在内存中添加新的GMSMapView。我十次使用控制器-十个GMSMapView对象将在内存图中,因此这与巨大的内存泄漏有关。
当我关闭此视图控制器时,如何从内存中卸载GMSMapView?
发布于 2021-10-10 03:33:12
viewDidDisappear中的代码是无用的。映射视图已经被定义为弱视图,这意味着当视图控制器取消初始化时,它将从内存中释放。如果视图控制器在您取消初始化后仍然存在,请检查您的内存图。如果视图控制器仍然在那里,那么视图控制器中的某些其他属性持有对视图控制器的强引用,并且与映射无关。否则,这可能会成为GMSMap框架中的问题。
https://stackoverflow.com/questions/69508682
复制相似问题