我正在努力在加载时从设备获取位置(lat \ long),但每次返回不同数量的坐标(每个坐标在1到5之间)。我刚刚进入Swift并且我认为我遗失了一些东西,但是除了需要使用之外我还没有找到任何其他东西.stopUpdatingLocation()
我想我可能会在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)
}
答案 0 :(得分:0)
与Objective-c和Android相同,这是完全平常的。这些数字将自行稳定下来。
我通常做的是计算两次连续更新之间的变化,一旦变化非常小 - 这意味着到那时我得到了正确的坐标。
顺便说一下,一旦稳定,我总是减少位置更新的频率以节省能源。