Сбой приложения в GMSPlace Picker при запуске на устройстве.(IOS 8.3)
Я использую следующий код, чтобы выбрать местоположение, как предложено Google
https://developers.google.com/places/ios-api/placepicker
var placePicker: GMSPlacePicker?
override func viewDidLoad()
{
super.viewDidLoad()
self.pickPlace()
}
func pickPlace()
{
let center = CLLocationCoordinate2DMake(51.5108396, -0.0922251)
let northEast = CLLocationCoordinate2DMake(center.latitude + 0.001, center.longitude + 0.001)
let southWest = CLLocationCoordinate2DMake(center.latitude - 0.001, center.longitude - 0.001)
let viewport = GMSCoordinateBounds(coordinate: northEast, coordinate: southWest)
let config = GMSPlacePickerConfig(viewport: viewport)
placePicker = GMSPlacePicker(config: config)
placePicker?.pickPlaceWithCallback({ (place: GMSPlace?, error: NSError?) -> Void in
if let error = error
{
print("Pick Place error: \(error.localizedDescription)")
return
}
if let place = place
{
print("Place name \(place.name)")
print("Place address \(place.formattedAddress)")
print("Place attributions \(place.attributions)")
self.navigationController?.popToRootViewControllerAnimated(true)
} else
{
print("No place selected")
}
})
}
Проблема с этим кодом в том, что он отлично работает на симуляторе, но на устройстве iOS 8.3 он вылетает без каких-либо сообщений.
1 ответ
Заменить NSError на Error
placePicker?.pickPlaceWithCallback({ (place: GMSPlace?, error: Error?)
Импортируйте их оба в класс AppDelegate
import GoogleMaps
import GooglePlaces
И вам нужно установить оба в didFinishLaunchingWithOptions
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
GMSServices.provideAPIKey("Your key")
GMSPlacesClient.provideAPIKey("Your key")
return true
}
Я не мог видеть сообщение об ошибке, используя устройство, только после того, как я проверил его в симуляторе