使用以下代码,我的currentLat和currentLong不会在第一个位置之外更新。位置永远不会超过1个项目,并且它总是完全相同。
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let loc: CLLocation = locations[locations.count - 1]
currentLat = loc.coordinate.latitude
currentLong = loc.coordinate.longitude
}
我所做的所有搜索工作只展示了如果它完全无法工作,如何让它工作,但这只能工作,但只能工作一次。
我希望这种方式的工作方式是不断更新GPS坐标,并在更新位置时关闭此代表。该位置是否一直在更新?我认为这是由于" startUpdatingLocation()"的术语。并且有一个" stopUpdatingLocation()。"我试图错误地使用它吗?
就像我说的那样,它第一次有效,所以它加载并启动得很好,允许权限,info.plist有必要的条目。
答案 0 :(得分:4)
如果要更新位置,则应在获得新位置后停止现有更新。您可以在stopUpdatingLocation()
方法中使用didUpdateLocations:
来执行此操作。
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
// This should match your CLLocationManager()
locManager.stopUpdatingLocation()
let loc: CLLocation = locations[locations.count - 1]
currentLat = loc.coordinate.latitude
currentLong = loc.coordinate.longitude
}
当您需要新位置时,请致电locManager.startUpdatingLocation()
。