Emp*_*ack 4 iphone objective-c ipad ios
在应用程序中,我使用ABRecordRef显示联系人的详细信息.我使用密钥kABPersonAddressCityKey,kABPersonAddressStateKey,kABPersonAddressZIPKey,kABPersonAddressCountryKey.一切正常.但我不知道以哪种格式显示地址.我的意思是,如果您看到" 联系人"应用,则地址会以不同国家/地区的特定格式显示.一些例子,
我们
街道
城州ZIP
国家
印度
街道
省
城市PIN
国家
澳大利亚
街道
郊区州ZIP
国家
现在我不知道如何找到不同国家的格式.
1.有没有办法根据国家/国家/地区代码查找地址格式?
2.Is有没有办法,我们可以得到使用单一功能的全格式的地址,就像我们使用ABRecordCopyCompositeName()得到的全名?
试试这个链接 ABCreateStringWithAddressDictionary
看起来你需要使用:ABCreateStringWithAddressDictionary将返回:
从地址属性返回格式化的地址.(来自Apple)
祝好运
从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)
Run Code Online (Sandbox Code Playgroud)
确保设置了ISO国家/地区代码属性,该属性用于确定地址的格式。
例:
postalAddress.street = "Main Street 1"
postalAddress.postalCode = "67067"
postalAddress.city = "Ludwigshafen"
postalAddress.state = "Rhineland-Palatinate"
postalAddress.country = "Germany"
postalAddress.isoCountryCode = "DE"
Run Code Online (Sandbox Code Playgroud)
导致这个
大街1号
67067路德维希港
德国
而
postalAddress.isoCountryCode = "US"
Run Code Online (Sandbox Code Playgroud)
导致
大街1号
路德维希港莱茵兰-普法尔茨67067
德国
| 归档时间: |
|
| 查看次数: |
2910 次 |
| 最近记录: |