位置正在返回零

时间:2017-04-12 06:31:07

标签: ios swift google-maps location cllocationmanager

我整天都被困在这个问题上。在用户选择“在使用中允许位置”后,我的应用程序不会使用该位置进行更新,除了无处可出现之外什么都没有

最初我使用mapView.userLocation作为查找用户位置的方法,但是当我开始使用CLLocationManager时它停止了工作。

从顶部导入CoreLocation并在我的类中添加CLLocationManagerDelegate。

我在viewDidLoad()上面     让locationManager = CLLocationManager() 并且在viewDidLoad中我有     locationManager.delegate = self     locationManager.desiredAccuracy = kCLLocationAccuracyBest

现在我正在检查用户已经批准的方式,或者他们是否只是拒绝了这种方式

 switch CLLocationManager.authorizationStatus(){
case.authorizedWhenInUse:
        print(mapView.userLocation?.coordinate)
        mapView.setCenter((mapView.userLocation?.coordinate)!, zoomLevel: 12, animated: true)
        break
    case.notDetermined:
        locationManager.requestWhenInUseAuthorization()
        break
    case .restricted, .denied:
        let alertController = UIAlertController(
            title: "Background Location Access Disabled",
            message: "In order to access this feature you need to allow  to access your location while in use", preferredStyle: .alert)
        let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
        alertController.addAction(cancelAction)

        let openAction = UIAlertAction(title: "Open Settings", style: .default, handler: {(action) in
            if let url = NSURL(string:UIApplicationOpenSettingsURLString) {
                UIApplication.shared.openURL(url as URL)
            }
        })
        alertController.addAction(openAction)
        self.present(alertController, animated: true, completion: nil)
        break
    default: locationManager.requestWhenInUseAuthorization()
    }

我有三个部分,一个是用户按下一个按钮,在该按钮中放大当前位置,一个用户搜索用户,最后一个用于viewDidLoad。如果用户从提示中选择了将其发送到他们的设置的选项,并且他们更改了他们的位置设置,当他们被重定向回我的应用程序时没有任何反应,如果我做任何涉及用户位置的事情,它就会崩溃。

我尝试过使用startUpdatingLocation但是根本没有做任何事情,当我尝试从mapView.userLocation捕获用户位置时,它只是nil。

我一整天都在为此而努力,所以任何形式的帮助都会受到赞赏

2 个答案:

答案 0 :(得分:0)

试试这个:在Simulator中选择Debug - >位置 - >一些位置。并重启你的应用程序

答案 1 :(得分:0)

我也得到了相同的结果,并尝试使用CLlocation manger的loaction属性返回了0.0000,0.00000。最后使用didUpdateloaction