2017-10-13 49 views
0

我目前正在從餐館的項目中按下餐館視圖控制器上的按鈕,我正在查看谷歌地圖(地圖視圖控制器)上餐廳的位置。爲了在我的地圖代碼中放置經緯度,我在從Firebase中檢索雙數時遇到了問題。每當我嘗試打印出來,我得到這個錯誤「致命錯誤:意外發現零而展開的可選值(LLDB)」從Firebase Swift中檢索雙號的問題

GMSServices.provideAPIKey("AIzaSyRQKeLyKH5CsrDPpPsjy7nYqudEbqXmQS2") 
     let ref = Database.database().reference().child("amsterdam") 
     ref.queryOrdered(byChild: "name").queryEqual(toValue: self.appDelegate.selectedBarName).observe(.value) { (snapshot) in 
      for child in snapshot.children{ 
       let snap = child as! DataSnapshot 
       let mapSnap = snap.childSnapshot(forPath: "map") 
       if let snapDict = mapSnap.value as? [String:AnyObject]{ 
        let dictValues = [AnyObject](snapDict.values) 
        for each in dictValues{ 
         let latitude = each["map_latitude"] as! Double 
         let longitude = each["map_longitude"] as! Double 

         print(latitude) 
         print(longitude) 
         let camera = GMSCameraPosition.camera(withLatitude: latitude, longitude: longitude, zoom: 6.0) 
         let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) 
         self.view = mapView 
         let marker = GMSMarker() 
         marker.position = CLLocationCoordinate2D(latitude: latitude, longitude: longitude) 
         marker.map = mapView 
        } 
      } 
     } 
    } 
} 

回答

0

我認爲這個問題是擺脫每個值。 嘗試這一行,以獲取每個作爲字典對象的值。

let latitude = each.object(forKey:"map_latitude") as! Double 
+0

遺憾的是它並沒有真正的工作(我得到這個錯誤此消息:終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因是:「 - [__ NSCFNumber objectForKey:]:無法識別的選擇發送到實例0x604000427420」 – DNA

+0

請檢查**每個**對象的值以及** dictValues **。如果您提供值** dictValues **,那麼我將嘗試提供解決方案 –

+0

我已檢查過每個值和dictValues 。一切顯示正確。可能問題是獲取經度和緯度的單獨值 – DNA