2015-12-29 43 views
2

我用下面的代码来接位置由谷歌的建议应用程序崩溃的GMSPlace选择器在设备上运行一段时间。(iOS 8.3版本)

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") 
      } 
     }) 
    } 

enter image description here 问题与此代码是其没有给予任何消息

上模拟器但在设备上的iOS 8.3崩溃运行完美
+0

您是否启用僵尸对象?它可以给你更多的细节 –

+0

是的,我做了Product-> Edit Scheme-> Diagnostics->点击Enable Zombie Objects。但不影响任何东西:( –

+0

)您是否允许您的应用获取位置信息,或者您是否在您的真实设备上设置了位置服务?是否可以在代码上设置断点以查看它崩溃的位置 –

回答

0

变化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 
    } 

使用设备我无法看到错误消息,只有经过我测试了它在模拟器中

相关问题