0
我正在从负载中的设备获取位置(lat \ long),但它每次都返回不同数量的坐标(每个坐标在1和5之间)。我刚刚进入Swift,我想我错过了一些东西,但我一直没有找到任何东西在这个需要使用.stopUpdatingLocation()CLLocationManager返回多个坐标
我想我可能会错过在Swift中的东西,但我我不确定是什么。
var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
if(CLLocationManager .locationServicesEnabled()){
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
}
func locationManager(manager: CLLocationManager!, didUpdateLocations locations:[AnyObject]!) {
var locationArray = locations as NSArray
var locationObj = locationArray.lastObject as CLLocation
var coord = locationObj.coordinate
self.locationManager.stopUpdatingLocation()
println(coord.latitude)
println(coord.longitude)
}
PeiGuo - 所以这是由于在viewDidLoad中运行?当我从触摸或滑动中运行相同的代码时,我只会得到一组经纬度。只是在移动到viewDidLoad时才开始这样做。 – InsertOldUserIDHere 2014-10-07 19:06:46
只有当您最初开始接收位置更新时,才会发生这种情况,此时您将首先收到一群不正确的数据。一旦稳定下来,它在同样的运行过程中保持稳定。由于ViewDidLoad是,我猜,在所有触摸等之前,这在ViewDidLoad中发生并不意外。毕竟,它与任何特定的方法无关,而是与时间顺序有关。 – 2014-10-07 19:57:07