gpt4 book ai didi

ios - swift - cellforrowindexpath "index out of range"错误

转载 作者:搜寻专家 更新时间:2023-11-01 07:21:12 28 4
gpt4 key购买 nike

我在用于搜索功能的 TableView 中随机出现“索引超出范围”错误。

它在 cell.article = self.searchResults?[indexPath.row] 处崩溃

99% 的时间都有效,但有时即使我使用相同的搜索查询,它也会出现此错误并崩溃。

func updateSearchResultsForSearchController(searchController: UISearchController)
{
self.searchResults?.removeAll(keepCapacity: false)
if (!searchController.searchBar.text!.isEmpty){
let query = ["q" : searchController.searchBar.text]
let start = 1
let size = 15
let index = "articles"
let parameters : [String : AnyObject] = ["index": index, "query": String(query), "start": start, "size": size]
let url = "http://api.url"
Alamofire.request(.POST, url, parameters: parameters)
.responseJSON { response in
guard response.result.error == nil else {
print(response.result.error!)
debugPrint(response)
return
}
if let value: AnyObject = response.result.value {
let search = JSON(value)
if let data = search["articles"].arrayValue as [JSON]?{
self.searchResults = data
self.view.hideLoading()
self.tableView.reloadData()
}
}
}
}
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("SearchCell") as! SearchTableViewCell
let gesture = UILongPressGestureRecognizer(target: self, action: #selector(SearchTableViewController.longPressCell(_:)))
gesture.minimumPressDuration = 0.5
cell.addGestureRecognizer(gesture)

cell.article = self.searchResults?[indexPath.row] ---> "EXC_BREAKPOINT" here.
cell.authorButton.tag = indexPath.row

return cell
}

最佳答案

问题是当您删除所有数据时

self.searchResults?.removeAll(keepCapacity: false)

您没有重新加载 tableView,直到 self.tableView.reloadData() 将在 Alamofire 完成时被调用,您的 tableView 可能会崩溃。您可以在删除元素后重新加载 tableView,或者只是不删除它们,它们无论如何都会在 Alamofire 完成时被 new 覆盖

关于ios - swift - cellforrowindexpath "index out of range"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38891753/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com