1
由于ABCreateStringWithAddressDictionary在iOS9中已弃用,因此从CLGeocoder获取地址字符串还有什么其他选择?如何在iOS9中从AddressDictionary获取格式化地址NSString?
由于ABCreateStringWithAddressDictionary在iOS9中已弃用,因此从CLGeocoder获取地址字符串还有什么其他选择?如何在iOS9中从AddressDictionary获取格式化地址NSString?
这是我的解决方案:
let geocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) in
if error != nil {
print("Error: \(error?.localizedDescription)")
}
if let myMarks = placemarks {
if let placemark = myMarks.last {
if let addressLine = (placemark.addressDictionary?["FormattedAddressLines"] as? [String]) {
self.addressLabel.text = addressLine.joined(separator: ", ")
}
}
}
})
厄尔尼诺键 “FormattedAddressLines” 这样的顺序返回一个数组:姓名,街道,城市,州,邮编,国家。如果您打印地址线,则会看到如下所示的内容:“Apple Inc.,1 Infinite Loop,Cupertino,CA 95014,United States”。
如果你仍然支持iOS 8或更早版本,使用'ABCreateStringWithAddressDictionary'不会有任何问题。 – rmaddy
另请参阅[此答案](http://stackoverflow.com/a/18176732/1226963)另一种解决方案。 – rmaddy