2012-01-23 41 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电路或其他无线电设备刚刚从断电状态唤醒,则获得的第一个位置更新可能会消失。