防止lat和lng返回地图上零的最佳方法初始化swift

防止lat和lng返回地图上零的最佳方法初始化swift,swift,cllocationmanager,Swift,Cllocationmanager,在viewDidLoad中,在一个基本上是地图的控制器中,我得到lat和lng。但它们是可选的,在把它们传递给摄像机之前,我真的想确认它们不是零 var lat = locationManager.location?.coordinate.latitude var lng = locationManager.location?.coordinate.longitude let cameraPosition = GMSCameraPosition.camera(withLatitude:

在viewDidLoad中,在一个基本上是地图的控制器中,我得到lat和lng。但它们是可选的,在把它们传递给摄像机之前,我真的想确认它们不是零

 var lat = locationManager.location?.coordinate.latitude
 var lng = locationManager.location?.coordinate.longitude  
 let cameraPosition = GMSCameraPosition.camera(withLatitude: lat!,
                                                          longitude: lng!, zoom: 1)

mapView = GMSMapview.map(withFrame: CGRect.zero, camera: cameraPosition)
这不是一个大问题,但如果我使用if-let语句或只是if语句来检查lat和lng是否为零,那么我最终遇到的问题是我需要将let-cameraPosition行和mapView语句全部移动到if语句中……这有点烦人

是否有一种使用谷歌地图处理lat lng NIL的“最佳实践”方法


谢谢。

使用
guard
语句安全地打开选项。这两个变量都是非可选的,在guard语句之后可以访问

guard let lat = locationManager.location?.coordinate.latitude else {return}
guard let lng = locationManager.location?.coordinate.longitude else {return}
let cameraPosition = GMSCameraPosition.camera(withLatitude: lat, longitude: lng, zoom: 1)
mapView = GMSMapview.map(withFrame: CGRect.zero, camera: cameraPosition)

使用
guard
语句安全地打开选项。这两个变量都是非可选的,在guard语句之后可以访问

guard let lat = locationManager.location?.coordinate.latitude else {return}
guard let lng = locationManager.location?.coordinate.longitude else {return}
let cameraPosition = GMSCameraPosition.camera(withLatitude: lat, longitude: lng, zoom: 1)
mapView = GMSMapview.map(withFrame: CGRect.zero, camera: cameraPosition)