2011-04-12 24 views

回答

1

按照Apple CoreLocation documentationstartUpdatingLocation更準確。從文檔:

您通過調用startUpdatingLocation方法啓動標準位置服務。此服務最適合需要對位置事件傳遞進行更精細控制的應用程序。具體來說,它會考慮desiredAccuracy和distanceFilter屬性中的值以確定何時傳遞新事件。這對導航應用程序或任何需要高精度位置數據或定期更新流的應用程序來說是最合適的。

startMonitoringSignificantLocationChanges對比這一點,其中,根據該文件,更粗,不太準確:

對於應用程序不需要定位事件的常規流,你應該考慮使用startMonitoringSignificantLocationChanges方法來開始交付事件。這種方法更適合於大多數只需要初始用戶位置修復的應用程序,只有在用戶移動了很長距離時才需要更新。該接口僅在檢測到設備關聯蜂窩塔的更改時纔會發佈新事件,從而導致更新頻率更低,功耗更高。

您可以使用CLLocationManager類的desiredAccuracy屬性來控制位置更新的準確性。