gpt4 book ai didi

ios - 不同国家的联系地址格式

转载 作者:可可西里 更新时间:2023-11-01 05:06:31 24 4
gpt4 key购买 nike

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

美国

Street
City State ZIP
Country

印度

Street
Province
City PIN
Country

澳大利亚

Street
Suburb State ZIP
Country

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

1.有什么方法可以根据国家/国家代码找到地址格式?
2.有没有一种方法可以使用单个函数获取完整格式的地址,就像我们使用 ABRecordCopyCompositeName() 获取全名一样?

最佳答案

在 iOS 9.0/macOS 10.11/watchOS 2.0 上你应该使用 CNPostalAddressFormatter相反:

The CNPostalAddressFormatter class formats the postal address in a contact. This class handles international formatting of postal addresses.

下面的代码在 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"

导致这个

Main Street 1

67067 Ludwigshafen

Germany

鉴于

postalAddress.isoCountryCode = "US"

导致

Main Street 1

Ludwigshafen Rhineland-Palatinate 67067

Germany

关于ios - 不同国家的联系地址格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11134997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com