2017-10-13 9 views
0

Je travaille actuellement sur un projet de restaurant où, en appuyant sur le bouton du contrôleur de View Restaurant, je visualise l'emplacement du restaurant sur google map (contrôleur de carte). Afin de placer la latitude et la longitude dans mon code de carte, j'ai un problème avec la récupération des nombres doubles de Firebase. Chaque fois que j'essaie de les imprimer, je reçois cette erreur « erreur fatale: de façon inattendue trouvé nulle en déballant une valeur facultative (LLDB) »Problème avec récupération Numéro double de 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 
        } 
      } 
     } 
    } 
} 

Répondre

0

Je pense que le problème est d'obtenir la valeur de chaque . Essayez cette ligne pour obtenir la valeur chaque en tant qu'objet de dictionnaire.

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

Malheureusement, il ne fonctionne pas vraiment (je suis arrivé cette erreur avec ce message: Mettre fin application en raison d'une exception non interceptée 'NSInvalidArgumentException', raison: '- [__ NSCFNumber objectForKey:]: sélecteur non reconnu envoyé à l'instance 0x604000427420' – DNA

+0

S'il vous plaît vérifiez la valeur de ** chaque ** objet et aussi le ** dictValues ​​** Si vous fournissez les valeurs ** dictValues ​​** alors je vais essayer de fournir la solution –

+0

J'ai vérifié les valeurs de each et dictValues Tout s'affiche correctement. Probablement, le problème est d'obtenir les valeurs séparées de la latitude et de la longitude – DNA