首页 > 解决方案 > 从初始屏幕多次转换到具有 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()
}

标签: iosswiftgoogle-maps-sdk-iosgmsmapview

解决方案


推荐阅读