当前位置: 首页 > 知识库问答 >
问题:

CLLocationManager。requestLocation()大约需要10秒

谭志用
2023-03-14

CLLocationManager。requestLocation()触发didUpdateLocations事件大约需要10秒。

以下是为CLLocationManager

let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.distanceFilter = 10
locationManager.requestWhenInUseAuthorization()
locationManager.requestLocation()

根据文档,这可能需要几秒钟。

此方法立即返回。调用它会导致位置管理器获得位置修复(可能需要几秒钟),并使用结果调用代理的locationManager(uuIdUpdateLocations:)方法。

但这会花费10秒吗?还是我遗漏了什么?

共有3个答案

郁博学
2023-03-14

我认为你有一个错误的前提。谷歌总是更快。我猜你的建筑应用程序是从零开始的,该应用程序无法访问缓存。否则谷歌地图有时也需要3秒钟以上的时间。显然,我不知道具体细节,但我只是认为当你使用谷歌地图时,你是以用户的身份使用它,而现在当你开发自己的应用程序时,你是以开发者的身份考虑它,即你对它更为细致。

此外,为了获得最佳的比较效果,请确保将所需的准确度设置为最佳导航距离过滤器设置为0活动类型设置为。汽车。导航应用程序通常就是这样做的。

Leo的评论也很重要:确保从主队列更新UI

正如核心位置经验丰富的程序员和Paulw11用户所述:

当您在location manager上调用startUpdatingLocation时,您必须给它时间来获得一个职位。您不应该立即调用停止更新位置。我们让它运行最多10秒,或者直到我们得到一个非缓存的高精度位置。

宿洋
2023-03-14

TL; DR

请求位置()是苹果公司提供的一个方便的方法,它将在引擎盖下运行启动更新位置(),检索多个位置数据,并选择最准确的一个传递给委托,并调用停止更新位置()

如果不能确定哪个位置数据是最好的,这个过程可能需要长达10秒(大约是超时限制)。

王英彦
2023-03-14

如果你关掉电源

locationManager.requestLocation()

对于

locationManager.startUpdatingLocation() 

然后didUpdateLocations将立即启动。这应该能解决你的问题。

 类似资料:
  • 问题内容: 我正在尝试向表中添加约束,以使其将列之一显示为当前日期加上10天。到目前为止,这是我尝试过的内容(我对SQL还是很陌生): ! 编辑:我现在也尝试过此操作: 编辑:感谢ypercube和我的同学。最终的代码是: 问题答案: SQL-Server中用于将值添加到现有列的语法为: 经过 SQL-Fiddle 测试

  • 我知道自动布局链基本上由3个不同的过程组成。 更新约束 布局视图(这里是我们计算框架的地方) 显示 我并不完全清楚的是 和 之间的内在区别。来自苹果文档: 设置需要布局 当您想要调整视图子视图的布局时,请在应用程序的主线程上调用此方法。此方法记下请求并立即返回。由于此方法不会强制立即更新,而是等待下一个更新周期,因此您可以使用它来使多个视图的布局失效,然后再更新这些视图中的任何一个。此行为允许您将

  • 在Xamarin网站上,它说: 最低操作系统版本为Windows 7。Xamarin。Forms Windows支持需要Windows 8.1和Xamarin。Forms UWP支持需要Windows 10 这是否意味着如果我想在Android和iOS应用程序的Xamarin.FormsAPI中使用UI控件和XAML,我需要有Windows 10?还是只有当我想将我的应用程序部署到Windows手

  • 本文向大家介绍对PHP语言认识上需要避免的10大误区,包括了对PHP语言认识上需要避免的10大误区的使用技巧和注意事项,需要的朋友参考一下 PHP是一种非常流行的开源服务器端脚本语言,你在万维网看到的大多数网站都是使用php开发的。但是,你大概很奇怪的注意到有少部分的人发誓要离php远远的。但是令人更奇怪的是或者很震惊的说他们不用php并不是因为一些被证实的语言缺点。他们决定不用php,是因为误解

  • 我正在将ColdFusion 9与Ehcache一起使用 Ehcache运行得很好,但是自从我重新安装了我的机器拒绝处理特定的元素,而是处理大量的其他元素。 不抛出异常,大约需要4秒才能返回。我尝试放入缓存的元素是ColdFusion组件,大约只有7ko。我不使用序列化。 缓存配置为: 我把它改成了 这有效!从更改为配置会有所不同!我认为可能内部大小计算不起作用。使用不需要大小计算,这就是它适用于

  • 它没有任何问题,没有抛出异常或任何其他迹象。为什么?