Yas*_*hna 11 gps core-location ios swift
CLLocationManager.requestLocation()
大约需要10秒才能开火didUpdateLocations
.
以下是为其设置的属性 CLLocationManager
let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.distanceFilter = 10
locationManager.requestWhenInUseAuthorization()
locationManager.requestLocation()
Run Code Online (Sandbox Code Playgroud)
根据文档,这可能需要几秒钟.
此方法立即返回.调用它会导致位置管理器获取位置修复(可能需要几秒钟)并使用结果调用委托的locationManager(_:didUpdateLocations :)方法.
但这需要10秒钟吗?或者我错过了什么?
如果你换掉了
locationManager.requestLocation()
Run Code Online (Sandbox Code Playgroud)
对于
locationManager.startUpdatingLocation()
Run Code Online (Sandbox Code Playgroud)
然后didUpdateLocations
将立即开始射击.这应该可以解决您的问题.
TL; 博士
requestLocation()是 Apple 提供的一个方便的方法,它会在后台运行startUpdatingLocation(),检索多个位置数据,并选择最准确的一个传递给委托,并调用stopUpdatingLocation()
如果无法确定哪个位置数据最好,此过程最多可能需要 10 秒(大约是超时限制)。