使用 Swift 4 / Xcode 9 从 CLPLacemark 获取完整地址字符串

Getting full address string from CLPLacemark using Swift 4 / Xcode 9

我之前已经能够使用以下代码从 CLPlacemark 获取完整的地址字符串 Swift 3:

let addressList = placemark.addressDictionary?["FormattedAddressLines"] as? [String]
let address =  addressList!.joined(separator: "\n")

addressDictionary 现在已在 swift 4 中弃用。

我可以提取每个单独的 CLPlacemark 地址变量字符串(名称、国家邮政编码等),但我想知道是否有更简单的方法来做到这一点。

我知道有一个 CNPostalAddress 类型的 postalAddress 变量,但不确定如何将其转换为字符串。

您可以从 CNPostalAddress 获取邮寄地址,例如:

CNPostalAddressFormatter.string(from:YOUR_POSTAL_ADDRESS, style: .mailingAddress)