2016-05-05 18 views
10

Sto utilizzando il metodo Google PlaceAutoComplete per ottenere suggerimenti sull'Addess immesso in textField.Funzione di completamento automatico di Google Crash after Call

func placeAutocomplete(text:String) { 
      let placesClient = GMSPlacesClient() 
      let filter = GMSAutocompleteFilter() 
      filter.type = .Address 

    placesClient.autocompleteQuery("New Delhi", bounds: nil, filter: nil) { (results, error) in 
     guard error == nil else { 
      print("Autocomplete error \(error)") 
      return 
     } 

     self.addressArray.removeAll() 
     for result in results! { 


      self.addressArray.append(result.attributedFullText.string) 
      print("Result \(result.attributedFullText.string) with placeID \(result.placeID)") 
     } 

    } 

} 

Quando chiamo questo metodo. Si blocca, ad esempio l'errore seguente.

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary boolValue]: unrecognized selector sent to instance 0x7fe338f01e40' 

Ho provato a trovare utilizzando il punto di interruzione di eccezione ma non funziona. Qualcuno ha idea, dove mi sbaglio?

+0

Se si modifica il codice a quello attualmente suggerito da Google (https://developers.google.com/places/ios-api/autocomplete#call_gmsplacesclient) si schianta ancora? Si prega di provare lo stesso codice senza aggiungere nulla per addressArray e con errore: NSError ?. Dopo aver provato questo, fammi sapere se fallisce pure. –

+0

si. si blocca anche utilizzando il codice google per il completamento automatico –

risposta

1

Ho risolto il problema correggendo i plist per "consentire carichi arbitrari" nelle Impostazioni di sicurezza del trasporto app. Sono stato digitato vero ma il suo tipo è stato impostato stringa invece per Boolean

0

Da qualche parte un NSDictionary viene passato al codice dove si aspetta un qualcosa che può essere interpretato come un booleano come un NSString o NSNumber. Non vedo nulla di simile nel codice che hai fornito. Se i punti di interruzione delle eccezioni non funzionano, proverei ad aggiungere punti di interruzione normali da qualche parte e a scavalcare il codice finché non si blocca. Potresti anche provare a rimuovere determinate sezioni e codice e vedere se il crash sta ancora accadendo, questo ti permetterà di restringere la parte del codice da incolpare.

Problemi correlati