2015-09-25 73 views
2

我正在迁移现有的应用程序以与iOS 9一起使用,但没有太多需要更改,但将ATS添加到info.plist,并使用MKAnnotationView而不是MKPinAnnotationView作为地图上的自定义引脚。问题是,当开始测试更改时,我注意到位置更新过于频繁,即使我静止不动。位置管理器初始化的方式没有任何改变。iOS 9 - LocationManager更新位置太频繁

这是日志的一个小例子。

2015-09-25 12:16:25.462 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps/course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time 

2015-09-25 12:16:25.464 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps/course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time 

2015-09-25 12:16:25.468 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps/course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time 

2015-09-25 12:16:25.475 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps/course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time 

位置管理设置这样

locationManager = [CLLocationManager new]; 

    locationManager.delegate = self; 
    locationManager.distanceFilter = 25.0f; 
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 

    if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) { 
     [locationManager requestAlwaysAuthorization]; 
    } 
    [locationManager startUpdatingLocation]; 

我猜问题是:有什么错我的执行或在那里核心位置API的变化被忽略的距离过滤器?

+0

'CLLocationManager'上的'pausesLocationUpdatesAutomatically'属性是否设置为YES?如果设置为“是”,如果位置数据不太可能改变,则通过禁用位置更新来帮助延长电池寿命。 –

+0

@MatteoPacini在代码中的任何一点都不会设置为“否”,默认值是“YES”。我会尝试明确地将其设置为“是”。谢谢。 – quant24

+0

@MatteoPacini我试过了,没有任何区别。感谢寿。 – quant24

回答

1

locationManager:didUpdateLocations:方法CLLocationManagerdistanceFilter财产是被重置取决于速度,iOS 9这似乎触发新的位置更新(返回最后已知的位置),从而导致数以百计的新位置更新中几秒钟。

+1

有趣。只要你有能力,你应该接受你自己的回答,以便其他读者知道问题已经解决。 –

+1

我看到了同样的结果,但启动后没有更改位置管理器的任何内容。你可以看看http://stackoverflow.com/questions/32838488/cllocationmanager-in-ios9-giving-incorrect-locations-ios8-is-ok也许? –

+1

@SjoerdPerfors我认为我们的CLLocationManager问题有点不同,我的问题与位置数据不好有关,但**非常频繁的更新。 – quant24