2017-08-15 34 views
0

在基本上是地圖的控制器中的viewDidLoad中,我得到了lat和lng。但他們是可選項,在將它們傳遞給相機之前,我真的很想確認它們不是零。防止lat和lng在地圖初始化時返回nil的最佳方法swift

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語句來檢查,如果緯度和經度是零的概率我最終的是,我需要移動讓cameraPosition線mapView語句全部放入if語句中...並且有點煩人。

是否有一個「最佳實踐」的方式來處理谷歌地圖經緯尼爾。

謝謝。

回答

1

使用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) 
相關問題