在进入另一个视图之前,我需要检查位置是否可用。但除非
locationManager:didFailWithError:
被呼叫,我无法知道位置服务是否已无法使用。
我所做的是start
和stop
位置服务,以手动检查失败并调用回调块然后呈现视图。但问题是确定位置可用性可能需要几秒钟。
那么,如果位置经理未能获得位置,最好的方法是什么?
答案 0 :(得分:2)
使用didFailWithError
的方法是正确的方法。如果位置不再可用,它会回复您。
我认为还有另一种方法可以更快地完成它。您可以尝试使用didUpdateLocations
方法并检查其中的位置nil
var newLocation = map.userLocation
var locationAvailable:Bool!
if let theLocation = newLocation.location{
locationAvailable = true
}else{
locationAvailable = false
}