2017-12-27 13 views
0

私はcnpostaladressformatterを使用しようとしましたが、いくつかのエラーが発生したため、アドレスを作成するのにABCreateStringWithAddressDictionaryを使用していますが、問題があります。下のコードをアップグレードするためにcnpostaladressformatterをどのように使用するかを教えてください。ABCreateStringWithAddressDictionaryが推奨されていません

if let addressDic = placemark.addressDictionary { 
     if let lines = addressDic["FormattedAddressLines"] as? [String] { 
      return lines.joined(separator: " • ") 
     } else { 
      // fallback 
      return ABCreateStringWithAddressDictionary(addressDic, true) 
     } 
    } else { 
     return "\(coordinate.latitude), \(coordinate.longitude)" 
    } 
+0

CNPostalAddressオブジェクトを作成し、addressDicからプロパティ(都市、州など)を設定する必要があるようです。 "CNPostalAddressFormatterの文字列(from"メソッド)を使うことができます。 – ghostatron

+0

そして、CNContactフレームワークはiOS 9で追加されました。これはABのものよりも使い勝手が良いです。あなたが持っているABコード – ghostatron

+0

@ goostatron私はそれを修正する方法を私に見せてもらえますか、それは私の問題です。 – john

答えて

0

CNPostalAddressFormatterを使用するには、CNPostalAddressを渡す必要があります。

func printMiamiFL() 
{ 
    let theAddress = CNMutablePostalAddress() 
    theAddress.city = "Miami" 
    theAddress.state = "FL" 
    let formatter = CNPostalAddressFormatter() 
    let addressString = formatter.string(from: theAddress) 
    print(addressString) 
} 

だからあなたがそのアドレスオブジェクトを作成する必要があり、そしてあなたの辞書からデータを移入し、その後、物事はうまく動作するはずです:CNPostalAddressを作成するには、実際にCNMutablePostalAddressを使用する必要があります。

関連する問題