2012-12-29 41 views
3

爲了確定用戶的位置,我使用了CoreLocation框架(我目前正在使用OSX應用程序(位置由wifi確定),但我的問題也可能適用於iOS應用程序)和以下代理方法:OSX(還有iOS):有沒有辦法知道緩存的用戶GPS位置?

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 

當由於某種原因,用戶位置不能被發現(例如,如果用戶的計算機未連接到互聯網),下面的方法被稱爲:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error 

在這種情況下,我會喜歡獲取最後一個已知的用戶位置。我想知道是否有辦法獲得這個最後的已知位置。是否有一些以前確定的地點?

回答

0

請參考官方文檔:

http://developer.apple.com/library/ios/ipad/#documentation/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html#//apple_ref/doc/c_ref/CLLocation

Accoding到,

@property(readonly, nonatomic) CLLocation *location 

此屬性的值是零,如果沒有位置數據 曾經被檢索。 在iOS 4.0及更高版本中,此屬性可能包含啓動時更新的位置對象 。具體來說,如果 顯著位置更新正在運行和您的應用程序是 終止,這個屬性是與最近的位置 數據更新,當您的應用程序重新啓動(與您建立一個新的 位置管理對象)。此位置數據可能比您的應用程序處理的最後一個位置事件 更近。

所以這是得到最後一個已知位置的唯一方法。 如果不是零,您可以使用它!

+0

它會在沒有「startUpdatingLocation」的情況下工作嗎? – Dima

+0

如果你打算使用重要的位置變化服務,沒有 – Lefteris

+0

我不關心這些變化,我只需要知道5-10公里內的估計位置 – Dima

相關問題