【发布时间】:2014-05-06 21:46:51
【问题描述】:
我正在一个搜索地址的应用程序中实现自动完成(每个添加的新字符一次搜索),并且我不断收到MKErrorDomain error 3,即MKErrorLoadingThrottled。这个错误,根据Apple dev,发生在
数据未加载,因为数据限制生效。这 如果应用程序通过 很短的时间。
我确切知道正在发出多少请求,搜索查询中的每个新字符都有一个请求(就像您期望自动完成功能一样)。当然,我是一个快速打字员,但仅仅 10 或 15 个请求就能够达到极限似乎很荒谬。查看以下两个源参考,我不明白为什么我一直受到限制。
根据Apple dev:
每个应用程序或开发者 ID 没有请求限制,所以写得很好 正确运行的应用程序应该没有问题。然而, 节流可能发生在编写不佳的应用程序中,该应用程序会创建一个极其 大量的请求。
詹姆斯霍华德said at a WWDC:
我想谈的另一件事是使用限制 API。 所以,我很高兴地宣布没有应用程序或开发人员 标识符范围的使用限制。 所以,如果你有一个拥有大量用户的应用程序并且你想做很多事情 请求数,没关系。
它会起作用的。
而我们所拥有的节流实际上只是第一道防线 防御有缺陷的应用程序。 因此,如果您将路线请求或本地搜索请求放在 无限循环,你有一个错误,最终你会得到 节流。
但是如果你做一些合理的事情,你会说哦,我就去做 响应用户输入的方向,你知道你可以做一些 因为我们向他们展示了那个例子。
就像我们针对一个用户输入发出两个方向请求一样, 没关系。 但是,如果每次用户点击 屏幕,那么您将受到限制。 但是,只要保持合理,你就会没事的。
对为什么会发生这种情况有任何想法吗??
【问题讨论】:
-
我不希望自动完成功能会这样工作。我希望有一个初始请求,然后根据进一步的输入在内存中过滤这些结果。
-
从您的问题中不清楚您在做什么。您是在搜索还是在进行地理编码(即将位置转换为地址,或根据地址查找位置)。
-
@quellish 我提到的第一件事是它搜索地址。另外,请参阅问题的标题。
-
MKLocalSearch 用于搜索兴趣点。企业等。地理编码正在寻找地址,或将地址转换为位置。您对“搜索地址”的描述似乎描述了地理编码而不是本地搜索。
-
@quellish 我不知道。我正在使用 MKLocalSearch 并删除具有企业 ID 的那些,以便仅获取地址。无论如何,我最终还是使用了 Google Places。谢谢。
标签: ios mapkit mklocalsearch