didUpdateToLocation调用两次,好的。为什么oldLocation两次都没有?

时间:2015-06-25 08:31:05

标签: ios mapkit cllocationmanager

据我所知,在大多数情况下,在{1}}上都会在init上调用两次CLLocationManager。

这是有道理的,即使它在两种情况下都返回相同的结果(例如:因为模拟位置总是返回相同的坐标和精度)。

这是我的启动过程中的日志。 didUpdateToLocation调用两次,两次oldLocation都是nil:

// Setup code:
let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.distanceFilter = 100.0
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()

// Log Output:
locationManager didUpdateToLocation 
old: nil 
new: <+22.28468100,+114.15817700> +/- 5.00m (speed -1.00 mps / course -1.00) @ 6/25/15, 3:21:57 PM Indochina Time

locationManager didUpdateToLocation 
old: nil 
new: <+22.28468100,+114.15817700> +/- 5.00m (speed -1.00 mps / course -1.00) @ 6/25/15, 3:22:01 PM Indochina Time

没有意义的是oldLocation在这些情况下总是为零。我必须提供一个外部变量,我调用actualOldLocation来跟踪更新之间距离的变化。我做错了导致这个值为零吗?

1 个答案:

答案 0 :(得分:1)

您定位的iOS是什么? didUpdateToLocation已从iOS 6.0弃用,不确定它现在是否完全正常运行。