【发布时间】:2016-04-11 07:15:03
【问题描述】:
所以在 iOS9 上有了新的requestLocation() 方法。我试图用它来只更新一个位置,但它会多次点击didUpdateLocations。
这不是假设只调用一次吗?我已将distanceFilter 设置为 1000.0,因此帮助快速返回非常广泛。有任何想法吗 ?
即使我在委托方法中调用stopUpdatingLocation(),我仍然会得到委托的三个命中。
注意:当我改用StartUpdatingLocation 时会发生相同的行为,我只想要一次返回,因为我想获取用户当前的国家/地区,因此将位置提供给 reversegeocoder
提前致谢
代码如下:
func getLocationOneTime(accuracy: Double){
print("Acquiring location one time - accuracy requested:\(accuracy)")
locationManager.distanceFilter = accuracy
locationManager.desiredAccuracy = accuracy
// Start gpsOneTimeTimeout timer
gpsTimeoutTimer = NSTimer.scheduledTimerWithTimeInterval(gpsOneTimeTimeout, target: self, selector: #selector(self.reportTimeout), userInfo: nil, repeats: false)
locationManager.requestLocation()
}
【问题讨论】:
-
你在代码的什么地方调用了这个方法?
-
@Jess 更新了上面的代码
-
我看到了同样的现象。我认为它是一个错误。它与缓存有关(您可以通过查看所获取位置的时间戳来了解这一点)。
标签: swift ios9 cllocationmanager