Функция обратного вызова Google Maps SDK не работает для Places SDK - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь получить GMSPlace из действительного идентификатора placeID и запускаю этот код

var placeGMS: GMSPlace?
let id = placeID.data()["placeID"] as! String
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
UInt(GMSPlaceField.placeID.rawValue))!
self.placesClient?.fetchPlace(fromPlaceID: id, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    placeGMS = place
    print("The selected place is: \(place.name)")
  }
})

Я установил 1 точку останова в начале self.placesClient? .FetchPlace и другую точку останова внутри обратный вызов, когда я запустил симулятор, он остановился на первой точке останова и продолжил играть, но не go внутри обратного вызова. В результате моя переменная placeGMS равна nil.

Несколько примечаний:

  • placeClient инициализируется как self.placesClient = GMSPlacesClient.shared ()

  • API Адресов работает для другой функции, поэтому моя учетная запись и ключи API установлены правильно

  • placeID действителен, я дважды проверил с помощью API c здесь: https://developers.google.com/places/ios-sdk/place-id

...