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