Cra*_*lot 6 addressbook ios cncontact
Apple 文档建议使用CNPostalAddressFormatter将地址显示为格式化字符串,这对国际化有很大帮助。
这段代码:
let postalString = CNPostalAddressFormatter.string(from: postalAddress.value, style: .mailingAddress)
Run Code Online (Sandbox Code Playgroud)
生成John Appleseed模拟器上联系人的工作地址:
3494 Kuhl Avenue
Atlanta GA 30303
Run Code Online (Sandbox Code Playgroud)
该地址缺少城市和州之间的逗号。
CNPostalAddressFormatter 有办法插入逗号吗?该文档没有列出任何内容。
如果不是,这是否意味着您必须手动格式化每个地区的地址,并且无法用于CNPostalAddressFormatter本地化?
这是我在美国地址的城市后添加“,”的代码片段。
#if canImport(Contacts)
import Contacts
public extension CLPlacemark {
/// Get a formatted address.
var formattedAddress: String? {
guard let postalAddress = postalAddress else {
return nil
}
let updatedPostalAddress: CNPostalAddress
if postalAddress.isoCountryCode == "US" {
// add "," after city name
let mutablePostalAddress = postalAddress.mutableCopy() as! CNMutablePostalAddress
mutablePostalAddress.city += ","
updatedPostalAddress = mutablePostalAddress
} else {
updatedPostalAddress = postalAddress
}
return CNPostalAddressFormatter.string(from: updatedPostalAddress, style: .mailingAddress)
}
}
#endif
Run Code Online (Sandbox Code Playgroud)