我在汽车中的时间速度运行。我正在使用通常的位置管理员代码。位置管理器 - 每秒只能获得1次更新
viewDidLoad中
CLLocationManager *locMgr;
if (locMgr == nil)
locMgr = [[CLLocationManager alloc] init];
[locMgr setDelegate:self];
[locMgr requestWhenInUseAuthorization];
[locMgr setDistanceFilter:kCLDistanceFilterNone];
[locMgr setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
[locMgr startUpdatingLocation];
DELEGATE
- (void)locationManager:(CLLocationManager *) manager didUpdateLocations:(NSArray<CLLocation *> *) locations
{
(process update)
}
问题
即使我使用的是最精确的DistanceFilter和所需的精度,我只得到一个每秒更新,而汽车正在移动,即使在60英里。我检查了每秒返回给委托的位置数量,它总是一个。任何人都可以解释吗?在我看来,我应该在60英里每小时获得持续不断的更新。任何帮助将不胜感激。
谢谢。
请参阅本文[关于如何使用NSTimer控制更新频率的答案](http://stackoverflow.com/a/7385397/1117968)。 –
谢谢。我(1)在viewDidLoad中启动了一个计时器,(2)计时器每秒运行10次,只做了一次startUpdatingLocation,(3)didUpdateLocations在最后做了stopUpdatingLocation。由于didUpdateLocations每秒运行10次而不是一次,我以为我有一个解决方案,但似乎我只是每秒获得一个新的位置和速度。我认为答案在于如何在没有定时器的情况下快速移动的时候,弄清楚如何让didUpdateLocations更快地返回结果。在60英里时,我正在旅行〜90英尺/秒。我屈服于专家。 – Deems