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