我在CLLocationManager
調用startUpdatingLocation()
,並在didUpdateLocations
方法我打電話stopUpdatingLocation()
時精度小於100um,像這樣:CLLocationManager忽略stopUpdatingLocation
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
var lastLocation: CLLocation = locations.last! as! CLLocation
var accuracy = lastLocation.horizontalAccuracy
if (accuracy < 100) {
locationCoordinate = lastLocation.coordinate
locationManager.stopUpdatingLocation()
getData()
}
}
然而,didUpdateLocations
方法仍稱一個或除非我將locationManager
設置爲nil
,否則在致電stopUpdatingLocations()
後再多兩次。很顯然,這也會多次調用我的方法getData()
,這是我不想要的。如何在不將其設置爲nil
的情況下停止locationManager
?
它是一種常見的事解決了這個問題。只要使用一個bool成員變量來防止不應該調用getData()。 – Gruntcakes