【问题标题】:Could geocodeAddressDictionary in iOS 9 be implemented different from iOS 8iOS 9 中的 geocodeAddressDictionary 能否实现不同于 iOS 8
【发布时间】:2015-08-17 23:28:28
【问题描述】:

我正在遍历一组地址并对每个地址执行地理编码。

    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 代码=2

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

但为什么它在 8.4 中有效,而现在在 9.0 中无效

我想我需要使用 mapQuest 吗?

感谢您的任何意见。

【问题讨论】:

    标签: ios mapkit geocoding


    【解决方案1】:

    iOS 9 可能对文档中的此语句有更多限制:

    每个应用的地理编码请求都有速率限制,因此请求过多 短时间内的请求可能会导致一些请求 失败。当超过最大速率时,地理编码器传递一个错误 将值为 kCLErrorNetwork 的对象添加到您的完成处理程序。

    【讨论】:

    • 是的,我也发现了这个。可以肯定的是,我的应用程序中的大型扳手。 mapQuest 的时间......以及他们奇怪的 JSON 响应......
    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 2016-04-14
    • 2015-12-20
    • 2018-03-07
    • 2016-11-18
    • 1970-01-01
    • 2015-12-17
    相关资源
    最近更新 更多