gpt4 book ai didi

iphone - 应用程序是否应该开始位置跟踪以便从 CLLocationManager 获取任何最后已知的位置?

转载 作者:太空狗 更新时间:2023-10-30 03:53:24 24 4
gpt4 key购买 nike

目前,正在开发一个需要从 CLLocationManager 获取最后位置的应用程序(没有任何定期跟踪)。不管多大,它是准确的。我不需要也不想开始跟踪 - 我只需要从缓存中获取一些最后的位置就可以了。恕我直言,CLLocationManager 是 iOS 中的共享组件,如果某个应用程序使用位置跟踪,那么另一个应用程序应该能够使用 CLLocationManager.location 中的最新位置。只需分配/初始化 CLLocationManager 并获取其位置就足够了。然而事实并非如此。我在 iPhone4 上测试过——启动谷歌地图,看到我的当前位置,然后转到我的应用程序,但在 [[CLLocationManager alloc] init] 位置属性为零之后。

更新:尝试 [locationManager startUpdatingLocation];和 [locationManager stopUpdatingLocation];但结果是一样的。我想,唯一的解决办法是开始定期跟踪?

更新 2:很奇怪,但是在 CLLocationManager 的分配/初始化之后没有“应用想要使用位置服务”的警告。这是我的代码片段:

CLLocationManager *locationManager = [[CLLocationManager alloc] init];

[locationManager startUpdatingLocation];
[locationManager stopUpdatingLocation];
NSLog(@"%@", locationManager.location); //prints nil

最佳答案

首先,您应该检查您的 locationManager 是否预先保存了一个“静态”位置。

如果是这样,您就完成了。

如果没有,您应该startUpdatingLocation,然后在didUpdateToLocation:fromLocation: 回调中,一旦您获得位置,就stopUpdatingLocation

根据我的经验,这是只获取一个位置的最佳方式。

更新以匹配作者更新:

您不应该在startUpdatingLocation 之后stopUpdatingLocationstartUpdatingLocation 在后台启动服务,因此您应该等到获得位置,然后在回调方法中调用它。

关于iphone - 应用程序是否应该开始位置跟踪以便从 CLLocationManager 获取任何最后已知的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10735083/

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