我正在实现自动完成(每添加一个新字符搜索一次)的功能,用于搜索地址的应用程序中,但是我一直收到MKErrorDomain错误3,即MKErrorLoadingThrottled。根据Apple dev,这个错误发生在以下情况下:
数据由于数据限制而未加载。如果应用程序在短时间内频繁请求数据,则可能会出现此错误。
我知道确切地有多少个请求被发送,每个搜索查询中的每个新字符都会发送一个请求(就像您期望自动完成一样)。当然,我打字速度很快,但仅在10或15个请求后就达到限制似乎很荒谬。查看以下两个源引用,我不明白为什么我一直受到限制。
根据Apple dev的说法:
数据由于数据限制而未加载。如果应用程序在短时间内频繁请求数据,则可能会出现此错误。
我知道确切地有多少个请求被发送,每个搜索查询中的每个新字符都会发送一个请求(就像您期望自动完成一样)。当然,我打字速度很快,但仅在10或15个请求后就达到限制似乎很荒谬。查看以下两个源引用,我不明白为什么我一直受到限制。
根据Apple dev的说法:
每个应用或开发者ID没有请求限制,因此良好编写的应用程序应该不会遇到任何问题。然而,如果一个编写不良的应用程序创建了大量请求,则可能会出现限流。
而詹姆斯·霍华德在WWDC上说过:
我想谈论的另一件事是此API的使用限制。因此,我很高兴地宣布,没有应用程序或开发人员标识符的使用限制。因此,如果您拥有一个具有大量用户并且希望进行许多请求的应用程序,那就没问题。它会正常工作。我们执行的限流只是防止出现错误应用程序的第一道防线。因此,如果您将方向请求或本地搜索请求放在无限循环中,您就会遇到错误,最终将被限流。但是,如果您做一些合理的事情,比如说,响应用户输入时只进行方向操作,您可以进行一些这样的操作,因为我们已经展示了这个例子。例如,我们对一个用户输入进行了两次方向请求,这没问题。但是,如果每次用户点击屏幕时都进行10,000次请求,那么您将被限流。只要保持合理,您就不会有问题。有什么想法为什么会发生这种情况吗?