アドレスを検索するアプリにオートコンプリート (新しい文字が追加されるたびに 1 つの検索) を実装していMKErrorDomain error 3
ますMKErrorLoadingThrottled
。Apple devによると、このエラーは次の場合に発生します。
データ調整が有効なため、データはロードされませんでした。このエラーは、アプリが短期間に頻繁にデータを要求した場合に発生する可能性があります。
検索クエリの新しい文字ごとに 1 つずつ、作成されているリクエストの数を正確に把握しています (オートコンプリートが機能することを期待するのと同じように)。確かに、私はタイピングが速いのですが、わずか 10 ~ 15 回のリクエストで限界に達するというのはばかげているように思えます。次の 2 つのソース リファレンスを見ると、なぜ抑制され続けるのかわかりません。
Apple devによると:
アプリまたは開発者 ID ごとのリクエスト制限はないため、適切に作成されたアプリが正しく動作する場合、問題は発生しません。ただし、非常に多くのリクエストを作成する不適切に作成されたアプリでは、スロットリングが発生する可能性があります。
ジェームス・ハワードが WWDC で言ったように:
もう 1 つお話ししたいのは、この API の使用制限です。そのため、アプリケーション ID または開発者 ID の幅広い使用制限がないことを発表できることを嬉しく思います。したがって、多くのユーザーがいるアプリがあり、多くのリクエストを実行したい場合は問題ありません。
うまくいきます。
そして、私たちが行っているスロットリングは、実際にはバグのあるアプリに対する防御の第一線にすぎません。したがって、ルート リクエストまたはローカル検索リクエストを無限ループに入れると、バグが発生し、最終的にはスロットリングされます。
しかし、合理的なことをすると、ユーザーの入力に応じて道案内をするだけで、その例を示したので、それらのいくつかを実行できることがわかります。
1 つのユーザー入力に対して 2 つの方向の要求を行ったように、それで問題ありません。しかし、ユーザーが画面をタップするたびに 10,000 を実行している場合、スロットルが発生します。しかし、それを合理的に保つだけで大丈夫です。
なぜこれが起こっているのかについてのアイデアはありますか??