2017-05-22 1 views
0

iOS向けGoogle Places APIを使用していて、近くの場所を正常に取得してそのアドレスを文字列として表示できます。私がしようとしているのは、都市などのアドレスコンポーネントをデータベースに格納することです。GMSPlaceからストリート、街などを抽出する方法アドレスコンポーネント

ドキュメントは、GMSPlaceにaddressComponentsプロパティ(配列)があることを示していますが、このプロパティの使用方法を把握できていないようです。

以下のコードセットにラベルのテキストにアドレス全体を提供しますが、私はそれを超えて取得することはできません。

編集----私はアドレスのコンポーネントにアクセスしようとしている方法を示すコードを追加しました

venueLabel.isHidden = false 
      venueLabel.text = selectedPlace?.name 
      addressLabel.isHidden = false 
      addressLabel.text = selectedPlace?.formattedAddress 
      let addressComponents = selectedPlace?.addressComponents 
      for component in addressComponents! { 
       let city = component["city"] //Error Type GMSPaceAddressComponent has no subscript members 
       print(city) 
      } 
+0

シェア完全なコードしてください。 –

+0

'addressComponents'のすべての詳細は、APIドキュメントに記載されています。これを参照してくださいhttps://developers.google.com/places/ios-api/reference/interface_g_m_s_place.html#ae0c1f39cee593fcf0909bcdf16ae2761 – Bilal

+0

@Shabirjanは追加コード –

答えて

2

selectedPlace.addressComponents 2つのプロパティタイプと名前を持つGMSAddressComponentの配列です。あなたに は

for component in addressComponents! { 
    if component.type == "city" { 
    print(component.name) 
    } 
    } 

GMSAddressComponentはクラスではありませんあなたはこのエラーを取得しているの辞書または配列であるようにそれがされるケース。

追加のコンポーネントタイプはlinkから参照できます。

+0

ありがとうございます。今は完璧な意味合いがあります。乾杯! –

0

私は私の後ろに続く人のためのObjective-Cのために、このどこかを見つけることができませんでした:

for (int i = 0; i < [place.addressComponents count]; i++) 
{ 
    NSLog(@"name %@ = type %@", place.addressComponents[i].name, place.addressComponents[i].type); 
} 
0
for (GMSAddressComponent * component in place.addressComponents) { 
    if ([component.type isEqual: @"locality"]) 
    { 
     NSLog(@"Current city %@ ", component.name); 
    } 
} 
+0

このコードは質問に答えるかもしれませんが、このコードが質問に答える理由と理由についての追加の文脈を提供することで、長期的な価値が向上します。 –

+0

コードが問題を解決する理由を説明してください。コードのみの回答は、コミュニティにとって有用ではありません。 – JimHawkins

関連する問題