gpt4 book ai didi

ios - 行进距离值不准确

转载 作者:行者123 更新时间:2023-11-29 13:02:07 25 4
gpt4 key购买 nike

刚开始使用 corelocation 框架可以帮助理解为什么我的代码没有按照我想要的方式工作。我希望它跟踪行进的距离,但是当 View 启动时,它每次都会做不同的事情。有时它会跳到 1000 或另一个大值,或者它会随机增加。谁能看出为什么这段代码对我不起作用?

    - (void)viewDidLoad
{
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
locationManager.distanceFilter = 100; //update every 100 meters
[locationManager startUpdatingLocation];
startLocation = nil;

[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
if (startLocation == nil)
{
totalDistanceBetween = 0;
self.startLocation = newLocation;
}
CLLocationDistance distanceBetween = [newLocation distanceFromLocation:startLocation ];
startLocation = newLocation;
totalDistanceBetween += distanceBetween;
totalDistanceBetween = totalDistanceBetween * 0.001; //convert to m value to km
NSString *tripString = [[NSString alloc]
initWithFormat:@"%.02f",
totalDistanceBetween];
distance.text = tripString;
}

最佳答案

让我突然想到的第一件事是您将 startLocation 设置为 nil after 您告诉位置管理器开始为您提供更新.

根据 startLocation 的定义/初始化/重用方式,它可能不包含您期望的初始值。

关于ios - 行进距离值不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19525050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com