iOS 位置管理器比每秒更新一次更频繁

标签 ios swift location core-location cllocationmanager

我创建了位置管理器

locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation

但每秒接收一次位置更新。 是否可以更频繁地获取更新?

我试图在计时器中获取当前位置,但它仍然每秒更新一次。

最佳答案

这是我做的:

[self pingLocation];//viewDidLoad

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {

    [manager stopUpdatingLocation];
    manager.delegate = nil;
    self.currentLocation = (CLLocation *)[locations lastObject];

}

- (void) pingLocation {
    [locationManager startUpdatingLocation];
    locationManager.delegate = self;
    [self performSelector:@selector(pingLocation) withObject:nil afterDelay:0.5];//change to whatever you want
}

这似乎给了我相当不错的结果,并且可以让它每秒更新一次以上。但是,它会非常耗尽电池电量,这不是最佳做法。我会问自己:你为什么想要这个?您真的需要每秒更新一次以上吗?

编辑:我刚刚再次测试过它,我相信虽然它似乎每半秒更新一次,但实际上并非如此。例如:

30.00000, 60.00000

30.00000, 60.00000

30.00032, 60.00056

30.00032, 60.00056

因此,抱歉,您的更新速度真的不能超过一秒。

关于iOS 位置管理器比每秒更新一次更频繁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135863/

相关文章:

ios - MKMapView 错误和 SFViewController 错误

ios - Flutter(iOS) -"No CupertinoLocalizations found",如何解决?

swift - 如何获取 customTableViewCell 中 UITextField 的字符串并将其保存到 coreData?

android - 构建适用于室内建筑的 Android map 应用程序

iOS 7 : Custom Back Indicator Image Position

ios - Xcode 链接器命令失败,退出代码为 1(使用 -v 查看调用)

dependency-injection - Swift 的对象框架宏

android - Android Studio模拟器在LocationServices.fusedLocationApi上崩溃

Android 位置 getTime() 总是返回大不同的时间

ios - 当表格 View 单元格中的条件发生变化时,自动布局约束会中断