ユーザーがtextFieldに新しい文字を入力し、検索結果をユーザーに動的に表示するたびにサーバー要求を実行するtextFieldがあります。これらはsearch_results
アレイに格納されています。また、次の行のコードを配列上で実行して、値が2回発生するかどうかを判断します。バックグラウンドスレッドの変数が変化し、インデックスが境界を超えてしまいます。swift ios
let duplicate_array = (search_results.filter{ $0.name == search_results[indexPath.row].name })
問題は、私はすぐに十分に入力すると、search_results
配列は、バックグラウンドスレッドから更新されていることで、indexPath.row
は、もはや更新search_results
の大きさに収まるように私は、このコードにindexOutOfBounds
例外を取得していません。これが起こらないようにする方法はありますか?検索クエリの実行が既に遅れており、最大で0.3
秒ごとに実行されるようにしました。これ以上の頻度は実行されません。search_results
のサイズが大きい場合は時折発生します。