数组索引超出范围

数组索引超出范围

当我在表视图中的某个单元格上仅轻按一次时,它非常适合另一个视图控制器。但是,如果我在单元格上快速点击两次,三次或多次,然后再移至另一个视图控制器。

数组索引超出范围的错误将显示并突出显示“ 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/

10-12 22:02