2012-01-23 74 views
0

到現在爲止,我的經驗是locationManager:didUpdateToLocation:fromLocation:幾乎立即被稱爲startUpdatingLocation在調用`startUpdatingLocation`之後``locationManager:didUpdateToLocation:fromLocation:`是否需要很長時間?

但是,我需要知道:我可以依靠這個總是如此快速,即幾乎是瞬間?有沒有可能需要很長時間的情景?如果是這樣,那麼這些情景是什麼?

(當然,在某些情況下,locationManager:didFailWithError:方法,而不是調用。因此,人們也可以問與否,如果這種方法被調用時,一個可以依靠它被稱爲幾乎瞬間。)

回答

0

如果您沒有完全強大的GPS信號,或根本沒有信號,CoreLocation可能決定嘗試使用Wi-Fi或移動互聯網絡來確定您的位置。在這種情況下,這個任務可能需要一段時間。

0

不,你不應該依賴於前幾個updates..location經理逐漸穩定到一個準確的位置,它顯示了一些隨機的不準確的位置不前..

我做這個代碼過濾位置更新

NSTimeInterval secondsSinceLastPoint = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp]; 
    if(secondsSinceLastPoint < 2) 
    { 
     return NO; //Not valid. 
    } 
0

不,您不應該依賴不在API規範中的時序行爲。

此外,如果GPS電路或其他無線電設備剛剛從斷電狀態喚醒,則獲得的第一個位置更新可能會消失。