Я пытаюсь получить 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