后台线程更新变量并导致索引超出范围快速ios
我有一个textField,每当用户在textField中键入新字符时,它都会执行服务器请求,并动态地向用户显示搜索结果。这些数据存储在search_results
数组中。我还在数组上运行以下代码行,以确定任何值是否出现两次。
let duplicate_array = (search_results.filter{ $0.name == search_results[indexPath.row].name })
问题是,如果我输入得足够快,search_results
数组就会从后台线程更新,并且我会在此代码上得到一个indexOutOfBounds
异常,因为indexPath.row
不再适合更新后的search_results
的大小。有没有什么方法可以防止这种情况发生,我已经延迟了搜索查询的执行,以便它最多每0.3
秒执行一次,而不是更频繁地执行,但是如果search_results
大小很大,这种情况仍然会偶尔发生。
转载请注明出处:http://www.yaohuano3.com/article/20230526/1663636.html