当我在表视图中的某个单元格上仅轻按一次时,它非常适合另一个视图控制器。但是,如果我在单元格上快速点击两次,三次或多次,然后再移至另一个视图控制器。
数组索引超出范围的错误将显示并突出显示“ let labelTitle = self.resultsTitleArray[indexPath.row]
”。我尝试在self.view.userInteractionEnabled = false
之前使用performSegueWithIdenitifier
,在self.view.userInteractionEnabled = true
之后使用performSegueWithIdenitifier
。但是仍然不起作用。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "moreDetail"){
let viewController = segue.destinationViewController as! ProductDetailViewController
let indexPath = self.resultsTable.indexPathForSelectedRow!
let labelTitle = self.resultsTitleArray[indexPath.row]
viewController.labelTitleText = labelTitle
self.resultsTable.deselectRowAtIndexPath(indexPath, animated: true)
}
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.performSegueWithIdentifier("moreDetail", sender: self)
}
最佳答案
您需要检查indexpath是否为nil
if(indexPath == nil){
return
}
并确保100%可行,您也可以
if(indexPath == nil || indexPath.row >= self.resultsTitleArray.length){
return
}
关于swift - 致命错误:多次轻击时数组索引超出范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35444091/