iOS 9 - LocationManager 更新位置过于频繁

标签 ios objective-c core-location cllocationmanager ios9

我正在迁移一个现有的应用程序以与 iOS 9 一起使用,除了将 ATS 添加到 info.plist 并使用 MKAnnotationView 而不是 之外没有太多改变>MKPinAnnotationView 用于 map 上的自定义图钉。问题是当开始测试更改时,我注意到位置更新太频繁了,即使我站着不动也是如此。位置管理器的初始化方式没有任何变化。

这是日志的一小部分。

2015-09-25 12:16:25.462 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps / course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time 

2015-09-25 12:16:25.464 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps / course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time 

2015-09-25 12:16:25.468 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps / course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time 

2015-09-25 12:16:25.475 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps / course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time 

位置管理器是这样设置的

    locationManager = [CLLocationManager new];

    locationManager.delegate = self;
    locationManager.distanceFilter = 25.0f;
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];

    if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
       [locationManager requestAlwaysAuthorization];
    }
    [locationManager startUpdatingLocation];

我想问题是:我的实现是否有问题,或者 Core Location API 是否发生了忽略距离​​过滤器的更改?

最佳答案

locationManager:didUpdateLocations: 方法中,CLLocationManagerdistanceFilter 属性正在根据速度进行重置,在 iOS 中9 这似乎会触发新的位置更新(返回最后已知的位置),从而在几秒钟内导致数百个新的位置更新。

关于iOS 9 - LocationManager 更新位置过于频繁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32786641/

相关文章:

ios - 使用Autolayouts,Storyboard中的Size Classes根据UICollectionView的大小设置UICollectionViewCell?

objective-c - CFPreferences 创建多个文件

ios - 核心位置不征求许可

iphone - CLLocationManager 时间戳和坐标

ios - 上下滚动时 UISwitch 重置

ios - Swift:使用本地化的百万和十亿文本格式化货币

ios - 如何更改 UIWebView 中的 src 值?

ios - 如何使用 NSDictionary 中的数据更改 UITableView 中单元格的文本

ios - 使用自定义值创建 CLPlacemark 以进行测试

ios - 需要查找 HomeKit 设备的 IP 地址