2017-12-27 2 views
0

ABCreateStringWithAddressDictionary를 사용하여 주소를 만들었지 만 cnpostaladressformatter를 사용했지만 어떤 오류가 발생하여 문제가 발생했습니다. 아래 코드를 업그레이드하기 위해 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의 "string (from"메서드)을 사용할 수 있습니다. – ghostatron

+0

그리고 CNContact 프레임 워크가 iOS 9에 추가되었으며 AB 재질보다 사용하기에 훨씬 친숙합니다.이 때문에 사용 중단 경고가 표시되는 이유는 무엇입니까? 당신이 가지고있는 AB 코드 – ghostatron

+0

@ghostatron 내가 고칠 수있는 방법을 보여줄 수 있니, 내 문제 야. – 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를 사용해야합니다.