LocationManager.startUpdatingLocation结束太晚,无法获取当前位置

时间:2015-06-09 16:10:01

标签: swift cllocationmanager

我正在尝试更改MapView的初始缩放位置。 如果myLocation == false,我希望initialLocation为(35,35),如果为true,则获取当前Location。但startUpdatingLocation在initialLocation之后完成,所以我无法得到它并且它崩溃了。如果我使用断点,它可以工作并获取值。

if self.myLocation == false {
            self.initialLocation = CLLocation(latitude: 35.00, longitude: 35.00) }
      else {
            locManager.delegate = self
            locManager.desiredAccuracy = kCLLocationAccuracyBest
            checkLocationAuthorizationStatus()
            locManager.startUpdatingLocation()

      self.initialLocation = CLLocation(latitude: locManager.location.coordinate.longitude, longitude: locManager.location.coordinate.longitude) 
            }

        centerMapOnLocation(self.initialLocation)
}

1 个答案:

答案 0 :(得分:1)

您需要使用locationManager委托:locationManager:didUpdateLocations来设置位置 将self.initialLocation=代码放入代理中。

然后创建另一个函数,您可以调用该函数来执行centerMapOnLocation(self.initialLocation)代码。