gpt4 book ai didi

ios - 每次移动超过 50 米时,如何使用新位置更新我的代表?

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

因此,当设备移动 50 米或更远时,我需要使用新位置更新我的代表。这是我正在学习的一本书的章末测验的一部分。

这是我的代码:

- (id)initWithCoder:(NSCoder *)aDecoder //we're overriding the superclasses (UIViewController) initialiser
{

self = [super initWithCoder:aDecoder];

if (self){
//create location manager object
locationManager = [[CLLocationManager alloc] init];

//there will be a warning from this line of code
[locationManager setDelegate:self];

//and we want it to be as accurate as possible
//regardless of how much time/power it takes
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];

//set the amount of metres travelled before location update is made
[locationManager setDistanceFilter:50];

//tell our manager to start looking for its location immediately
[locationManager startMonitoringSignificantLocationChanges];

}

return self;
}

- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
{
NSLog(@"%@", [locations lastObject]);
}

我已将距离过滤器设置为 50(我希望对应于 50 米)。然后当打印到控制台时,我调用了数组中的最后一个对象,我希望它是最近更新的位置。

然后我构建并运行并将初始位置打印到控制台。然后在我的 iOS 模拟器菜单中单击 debug > location > city run。我想这需要超过 50 米的位置,因为城市运行肯定会超过 50 米。位置再次更新。我尝试通过单击高速公路驱动器再次更新位置,但没有任何反应。

在文档中指出:“它不依赖 distanceFilter 属性中的值来生成事件。连续多次调用此方法不会自动导致生成新事件

这正是我正在经历的。我可以更改一次位置并将新位置打印到控制台.. 但是再次更改位置不会导致任何更改。

我认为 -locationManager:didUpdateLocations: 每次更新时都会用新位置更新控制台。我需要以其他方式执行此操作吗?

希望能帮到你亲切的问候

最佳答案

你忘了像这样调用:startUpdatingLocation:

if ([CLLocationManager locationServicesEnabled]) {
[self.locationManager startUpdatingLocation];
}

关于ios - 每次移动超过 50 米时,如何使用新位置更新我的代表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19479202/

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