我正在尝试使用CLGeocoder()。geocodeAddressString()在用户键入邮政编码后自动填充表单中的字段。我的代码适用于美国50个州的邮政编码,但是现在我们尝试添加地区(APO / FPO,维尔京群岛,波多黎各等),在搜索这些邮政编码时,该函数会出错。
//var zip = "00901" //Puerto Rico
var zip = "10012" //NY, NY
CLGeocoder().geocodeAddressString(zip, completionHandler: { (placemarks, error) in
if let err = error {
print("CLGeocoder error: \(String(describing: err))")
}
if let addresses = placemarks {
if addresses.count > 0 {
let address = addresses[0]
print("Address is \(address)")
}
}
})
从NY,NY邮政编码开始,输出为:
Address is 10012, New York, NY 10012, United States @ <+40.72581550,-73.99797500> +/- 100.00m, region CLCircularRegion (identifier:'<+40.72077310,-74.00063510> radius 1503.89', center:<+40.72077310,-74.00063510>, radius:1503.89m)
而PR邮政编码仅返回:
CLGeocoder error: Error Domain=kCLErrorDomain Code=8 "(null)"