我想将 CLPlacemark
格式化为字符串。
众所周知的方法是使用 ABCreateStringWithAddressDictionary
,但在 iOS 9 中已弃用。警告告诉我改用 CNPostalAddressFormatter
。
但是,CNPostalAddressFormatter
只能格式化CNPostalAddress
。无法将 CLPlacemark
正确转换为 CNPostalAddress
;只有这 3 个属性由 CLPlacemark
和 CNPostalAddress
共享:country
、ISOcountryCode
和 postalCode
.
那么现在我应该如何将 CLPlacemark
格式化为字符串呢?
最佳答案
获取地标的 addressDictionary
并使用其 "FormattedAddressLines"
键提取地址字符串。请注意,这是字符串行的数组。
(但是,您是对的,负责转换到联系人框架的 Apple 开发人员似乎完全忘记了地址簿和 CLPlacemark 之间的交换。这是联系人框架中的一个严重错误 - 众多错误之一。)
编辑 由于我最初发布了那个答案,Apple 修复了这个错误。 CLPlacemark 现在有一个 postalAddress
属性,它是一个 CNPostalAddress,然后您可以使用 CNPostalAddressFormatter 来获得一个漂亮的多行地址字符串。请务必导入联系人
!
关于ios - CLPlacemark 到 iOS 9 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33379114/