2015-09-25 115 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