ios - 从初始屏幕多次转换到具有 GMSMapView 的地图屏幕后应用程序崩溃
问题描述
我的应用程序具有初始搜索屏幕,在搜索时进入GMSMapView
导航中的地图屏幕(
* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“{id: 31684}: An -observeValueForKeyPath:ofObject:change:context: 已收到但未处理的消息。关键路径:相机观察对象:;层=>改变:{种类=1;new =“GMSCameraPosition 0x149091040:目标:(51.179,-1.826)轴承:0.000 zoomLevel:4.000 查看角度:0.000”;} 上下文:0x0' *First throw call stack: (0x183326d8c 0x1824e05ec 0x183326c6c 0x183d39e5c 0x183cb52f8 0x183cb4e30 0x183d39ca0 0x101296d34 0x101294fbc 0x101293fe0 0x18d569edc 0x18d6cb628 0x18d6cb360 0x18d569b84 0x18d6cb628 0x18d6cb7a0 0x18d6cb360 0x18d568ed4 0x18d39aadc 0x18cfde0f0 0x18cf02b90 0x18cf02acc 0x18d2403b4 0x18cfafac8 0x18cfaf720 0x18cfa3424 0x18cefb770 0x18749d25c 0x1874a13ec 0x18740daa0 0x1874355d0 0x187436450 0x1832ce910 0x1832cc238 0x1832cc884 0x1831ecda8 0x1851cf020 0x18d1cd78c 0x100d953a8 0x182c7dfc0) libc++ abi.dylib:以 NSException 类型的未捕获异常终止
这是我的 mapView 屏幕代码
func createMap()
{
mapView.delegate = self
mapView.isMyLocationEnabled = true
mapView.settings.scrollGestures = true
mapView.settings.zoomGestures = true
mapView.settings.compassButton = true
mapView.padding = UIEdgeInsetsMake (0,0,0,0)
mapView.settings.myLocationButton = true
mapView.isHidden = true
}
这是屏幕中的viewWillDisappear
代码mapview
override func viewWillDisappear(_ animated: Bool)
{
super.viewDidDisappear(true)
// Remove Advertisemnt
appDelegate.removeAdsFromViewController(controller: self)
NotificationCenter.default.removeObserver(self)
self.clusterManager.clearItems()
self.mapView.clear()
}
解决方案
推荐阅读
- latex - Overleaf v1 和 v2:如何删除 overleaf 中的项目?
- javascript - 如何在同一个 config.js 文件中重用常量
- inner-join - 多对多关系的内连接
- asp.net - CSRF 标记修复
- javascript - javascript在字符串中找到div id并删除它的内容
- javascript - 无法使用不同的参数渲染相同的路由反应路由器 v4
- android - 更改imageview的图像5秒钟,然后恢复原始
- c - 内核态修改用户栈指针
- robotframework - 机器人框架 - 具有多个名称的关键字
- mysql - 两个数据库字段是否都在使用中?