从 iOS 9.0 / macOS 10.11 / watchOS 2.0 开始,您应该使用CNPostalAddressFormatter代替:
CNPostalAddressFormatter 类格式化联系人中的邮政地址。此类处理邮政地址的国际格式。
下面的代码在 Swift 3 中,但将其转换为 Objc 很简单
let postalAddress = CNMutablePostalAddress()
postalAddress.street = street
postalAddress.postalCode = zipCode
postalAddress.city = city
postalAddress.state = state
postalAddress.country = country
postalAddress.isoCountryCode = countryCode
let formattedAddress = CNPostalAddressFormatter.string(from: postalAddress, style: .mailingAddress)
确保您设置了 ISO 国家代码属性,该属性用于确定地址的格式。
例子:
postalAddress.street = "Main Street 1"
postalAddress.postalCode = "67067"
postalAddress.city = "Ludwigshafen"
postalAddress.state = "Rhineland-Palatinate"
postalAddress.country = "Germany"
postalAddress.isoCountryCode = "DE"
导致这个
大街 1 号
67067 路德维希港
德国
然而
postalAddress.isoCountryCode = "US"
导致
大街 1 号
路德维希港莱茵兰-普法尔茨 67067
德国