私は従業員のリストを表示しているtableView
があります。今度はtableView
をスクロールし、スクロールがまだ停止していない場合、検索バーをクリックするとアプリがクラッシュします。インデックスが範囲外です。なぜこれが起こっているのか分かりません。誰でも手伝ってください。事前にありがとうございます。テーブルビューをスクロールしてサーチャークラッシュアプリをクリック
注:テーブルビューにはlistArrayがロードされます。ユーザーの検索時に、検索結果を表示するsearchArrayです。
コード:
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
self.searchedArray = []
searchEnable = true
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell:ListingCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell") as! ListingCell
if searchEnable {
self.setEmployeeDetailsInTableView(cell: cell, index: indexPath.row, dataArray: searchedArray)
}
else{
self.setEmployeeDetailsInTableView(cell: cell, index: indexPath.row, dataArray: listArray)
}
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if (searchBar.text?.characters.count)! > 0 {
searchEnable = true
getListForSearchedText(searchText)
}
if searchBar.text?.characters.count == 0{
searchEnable = false
self.tableView.reloadData()
}
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
searchEnable = false
self.searchedArray = []
self.tableView.reloadData()
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
getListForSearchedText(searchBar.text!)
searchBar.resignFirstResponder()
}
クラッシュ:
fatal error: Index out of range
クラッシュするコードを教えてください –
検索バーのクリックでlistArrayを変更していますか? – user3608500
いいえ、私はlistArrayを変更していません。 –