ios - CLPlacemark 到 iOS 9 中的字符串

标签 ios objective-c swift geocoding

我想将 CLPlacemark 格式化为字符串。

众所周知的方法是使用 ABCreateStringWithAddressDictionary,但在 iOS 9 中已弃用。警告告诉我改用 CNPostalAddressFormatter

但是,CNPostalAddressFormatter只能格式化CNPostalAddress。无法将 CLPlacemark 正确转换为 CNPostalAddress;只有这 3 个属性由 CLPlacemarkCNPostalAddress 共享:countryISOcountryCodepostalCode.

那么现在我应该如何将 CLPlacemark 格式化为字符串呢?

最佳答案

获取地标的 addressDictionary 并使用其 "FormattedAddressLines" 键提取地址字符串。请注意,这是字符串行的数组

(但是,您是对的,负责转换到联系人框架的 Apple 开发人员似乎完全忘记了地址簿和 CLPlacemark 之间的交换。这是联系人框架中的一个严重错误 - 众多错误之一。)


编辑 由于我最初发布了那个答案,Apple 修复了这个错误。 CLPlacemark 现在有一个 postalAddress 属性,它是一个 CNPostalAddress,然后您可以使用 CNPostalAddressFormatter 来获得一个漂亮的多行地址字符串。请务必导入联系人!

关于ios - CLPlacemark 到 iOS 9 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33379114/

相关文章:

ios - 在 Interface Builder 中,是否可以重用 IBOutlet 按钮属性?

objective-c - Swift:覆盖选择器的方法具有不兼容的类型

Swift : Parse, 基于nsdate()查询日期字段

ios - 使用 Swift 在 TableView 中显示 JSON 数据

ios - 我如何使用受其启发的ASCII艺术来指定这种简单的居中NSLayoutConstraint?

ios - 如何以编程方式在 Swift 中创建 "Back"UIBarButton 项目?

objective-c - 如何使用回调函数访问 runAction 的目标?

ios - 如何让本地.png图片转为base64字符串

objective-c - Objective-C : NSString* myVar; vs. NSString *myVar;

swift - 如何限制 SpriteKit 中的缩放