Ошибка при использовании API Google Maps Places с lookUpPlaceID

#swift3 #google-places-api #google-maps-sdk-ios

#swift3 #google-places-api #google-maps-sdk-ios

Вопрос:

Я пытаюсь запустить приведенный ниже код :

 func mapView(_ mapView: GMSMapView, didTapPOIWithPlaceID placeID: String, name: String, location: CLLocationCoordinate2D) {
        print("You tapped (name): (placeID), (location.latitude)/(location.longitude)")

        infoMarker.snippet = placeID
        infoMarker.position = location
        infoMarker.title = name
        infoMarker.opacity = 0;
        infoMarker.infoWindowAnchor.y = 1
        infoMarker.map = mapView
        mapView.selectedMarker = infoMarker

        placesClient!.lookUpPlaceID(placeID, callback: { (place: GMSPlace?, error: NSError?) -> Void in
            if let error = error {
                print("lookup place id query error: (error.localizedDescription)")
                return
            }

            if let place = place {
                print("Place name (place.name)")
                print("Place address (place.formattedAddress)")
                print("Place placeID (place.placeID)")
                print("Place attributions (place.attributions)")
            } else {
                print("No place details for (placeID)")
            }
        } as! GMSPlaceResultCallback)
    }
 

Как только выполняется строка lookUpPlaceID, она выдает исключение :

 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
 

введите описание изображения здесь

Ответ №1:

Что-то подобное должно сработать для вас:

 placesClient.lookUpPlaceID(placeId, callback: { (place, error) -> Void in
  if let error = error {
    print("lookup place id query error: (error.localizedDescription)")
    return
  }

  if let place = place {
    print("Place name (place.name)")
    print("Place address (place.formattedAddress)")
    print("Place placeID (place.placeID)")
    print("Place attributions (place.attributions)")
  } else {
    print("No place details for (placeID)")
 }
})
 

Комментарии:

1. Это сработало, не могли бы вы объяснить, что я делал не так?