2016-05-05 5 views
10

Google PlaceAutoCompleteメソッドを使用して、textFieldに入力されたAddessの提案を取得しています。Google Autocomplete関数の呼び出し後にクラッシュする

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

    } 

} 

私はこのメソッドを呼び出します。クラッシュすると、次のようなエラーが表示されます。

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

例外ブレークポイントを使用しようとしましたが、動作しません。 私はどこが間違っているのでしょうか?

+0

Googleが現在提案しているもの(https://developers.google.com/places/ios-api/autocomplete#call_gmsplacesclient)にコードを変更すると、それはまだクラッシュですか? addressArrayとエラー:NSError?に何も追加せずに、まったく同じコードを試してください。一度これを試してみると、それが失敗した場合は私に知らせてください。 –

+0

はい。それはオートコンプリート用のGoogleコードを使用してもクラッシュしています –

答えて

1

私は、App Transportセキュリティ設定で「任意の負荷を許可する」というplistを修正してこの問題を解決しました。私はそれを実際に入力しましたが、その型はブール代数の代わりに文字列に設定されました

0

NSDictionaryがNSStringやNSNumberなどのブール値として解釈される可能性のあるコードに渡されているところがあります。あなたが提供したコードの中に、私はそういうものは見当たりません。例外ブレークポイントが動作していない場合は、通常のブレークポイントをどこかに追加し、クラッシュするまでコードをステップ実行します。特定のセクションとコードを削除し、クラッシュがまだ発生しているかどうかを確認することもできます。これにより、コードのどの部分を非難するかを絞り込むことができます。

関連する問題