iOS 9中的geocodeAddressDictionary可以与iOS 8不同地实现

时间:2015-08-17 23:28:29

标签: ios mapkit geocoding

我循环遍历一组地址并在每个地址上执行地理编码。

    for aClient in passedPossible {

        let geocoder = CLGeocoder()

        let checkAddress = [
            CNPostalAddressStreetKey:aClient[CNPostalAddressStreetKey]!,
            CNPostalAddressCityKey:aClient[CNPostalAddressCityKey]!,
            CNPostalAddressPostalCodeKey:aClient[CNPostalAddressPostalCodeKey]!,
            CNPostalAddressCountryKey:"Australia"
        ]


        geocoder.geocodeAddressDictionary(checkAddress, completionHandler: { (placemarks, error) -> Void in

// Etc do stuff...

    }

在iOS 8.4中,我可以传递250个项目,循环播放并为每个项目回电。

但是在使用相同代码的iOS 9.0中,它失败了,除了大约40个项目之外,给我的错误。

我得到的错误是

错误域= kCLErrorDomain Code = 2

我认为苹果不喜欢我的批量地理编码?

但为什么它在8.4中起作用而在9.0中不起作用

我想我需要使用mapQuest?

感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

iOS 9对文档中的此声明可能更具限制性:

  

地理编码请求对每个应用都是速率限制的,所以制作太多了   短时间内的请求可能会导致一些请求   失败。超过最大速率时,地理编码器会传递错误   具有值kCLErrorNetwork的对象到您的完成处理程序。