Ios 不同国家/地区的联系地址格式

Ios 不同国家/地区的联系地址格式,ios,iphone,objective-c,ipad,Ios,Iphone,Objective C,Ipad,在应用程序中,我使用ABRecordRef显示联系人的详细信息。我正在使用键KabPersonalAddressCityKey,KabPersonalAddressStateKey,KabPersonalAddressZipKey,KabPersonalAddressCountryKey。一切正常。但我不知道用哪种格式显示地址。我的意思是,如果您看到联系人应用程序,地址将以不同国家/地区的特定格式显示。一些例子, 美国 街道 城市州邮政编码 国家 印度 街道 省份 城市密码 国家 澳大利亚 街道

在应用程序中,我使用ABRecordRef显示联系人的详细信息。我正在使用键KabPersonalAddressCityKeyKabPersonalAddressStateKeyKabPersonalAddressZipKeyKabPersonalAddressCountryKey。一切正常。但我不知道用哪种格式显示地址。我的意思是,如果您看到联系人应用程序,地址将以不同国家/地区的特定格式显示。一些例子,

美国

街道
城市州邮政编码
国家

印度

街道
省份
城市密码
国家

澳大利亚

街道
郊区州邮政编码
国家

现在我不知道如何找到不同国家的格式

1.有没有办法根据国家/地区代码查找地址格式?
2.是否有一种方法可以使用单个函数获取完全格式化的地址,就像使用ABRecordCopyCompositeName()获取全名一样?

尝试此链接

看起来您需要使用:
ABCreateStringWithAddressDictionary
,它将返回:

从地址属性返回格式化的地址。(来自苹果)


祝您好运,从iOS 9.0/macOS 10.11/watchOS 2.0开始,您应该改用:

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

德国


可能重复的Geez!在我悬赏之前你们为什么不告诉我?因为悬赏很有趣,我还没见过你们的问题。你知道你可以准确地键入你的问题标题,然后遇到这个问题吗?哈鲁伊斯·奥斯卡,;-)我完全同意你的看法。谢谢你,伙计!非常欢迎你,我刚刚完成了一个地址簿应用程序,我不得不说,地址簿文档真的很糟糕。