到目前为止,我的经验是在调用locationManager:didUpdateToLocation:fromLocation:
后几乎立即调用startUpdatingLocation
。
然而,我需要知道:我能不能依赖于这一点,总是那么快,即几乎是瞬间的?是否存在可能需要很长时间的情况?如果是这样,那些场景是什么?
(当然,在某些情况下会调用locationManager:didFailWithError:
方法。所以也可以询问,如果调用此方法,可以依赖它几乎立即被调用。)
答案 0 :(得分:0)
如果您没有完全强大的GPS信号或根本没有信号,CoreLocation可能会决定尝试使用Wi-Fi或移动互联网网络来确定您的位置。在这种情况下,此任务可能需要一段时间。
答案 1 :(得分:0)
不,你不应该依赖前几个更新。位置管理器逐渐安顿到一个准确的位置,而不是在它显示一些随机不准确的位置..
我执行此代码来过滤位置更新
NSTimeInterval secondsSinceLastPoint = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp];
if(secondsSinceLastPoint < 2)
{
return NO; //Not valid.
}
答案 2 :(得分:0)
不,您不应该依赖于API规范中没有的计时行为。
此外,如果GPS电路或其他无线电刚刚从断电状态唤醒,您可能会获得第一个位置更新。