我正在使用真实的设备来获取当前位置,问题是locationManager.location
是nil
而函数didUpdateLocations
没有被调用。
var location = CLLocationManager()
@IBOutlet weak var map: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
map.showsPointsOfInterest = true
map.showsScale = true
map.showsUserLocation = true
locationManagerConfiguration()
}
func locationManagerConfiguration(){
location.requestAlwaysAuthorization()
location.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled(){
location.delegate = self
location.desiredAccuracy = kCLLocationAccuracyBest
location.startUpdatingLocation()
}
let sourceCoordinates = location.location?.coordinate
let sourcePlacemark = MKPlacemark(coordinate: sourceCoordinates!
这是sourceCoordinate为零的问题
答案 0 :(得分:0)
您提供的代码与您的问题陈述不符,但我认为我在代码中看到了问题。根据Apple文档:Startupdatinglocation
minDate = new Date(2018, 0, 1);
maxDate=new Date(2020, 2, 1);
是一个异步函数,需要花费几秒钟来获取位置。该函数将立即返回,但是当系统获得GPS位置(几秒钟后,异步)后,将调用委托回调。上面的代码正在调用location.startUpdatingLocation()
,并立即期望值存在(同步,永远不会出现)。您的代码必须更像:
startUpdatingLocation()