UITableViewController 单元格中的索引超出范围 - swift

Posted

技术标签:

【中文标题】UITableViewController 单元格中的索引超出范围 - swift【英文标题】:Index out of range in cell of UITableViewController - swift 【发布时间】:2016-11-02 14:25:36 【问题描述】:

我有一个 UITableViewController。在 tableview 的代码中,如果一个值等于另一个值,我想显示一个“lineLabel”(它只是一个空白标签,在单元格底部有一个背景) - 我得到了它的工作非常好!

问题是当我到达底部单元格时,我得到索引超出范围错误。我知道为什么会出现错误(将在代码中显示),但我不知道如何防止该错误并仍然获得与现在相同的结果?

希望你能帮助我!

这是我的代码:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
        let cell:carTableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! carTableViewCell

let checkBackgroundColor = carsArray[indexPath.row + 1].componentsSeparatedByString("#")

        if checkBackgroundColor[4] == finalCars[4] 
            cell.lineLabel.hidden = true
         else 
            cell.lineLabel.hidden = false
        


        return cell
    

我得到了索引超出范围错误,因为我在代码的workoutsArray[indexPath.row + 1].componentsSeparatedByString("#") 部分检查不存在的索引。我只是不知道该怎么做?有人吗?

【问题讨论】:

numberOfRowsInSectionnumberOfSections 下返回什么? 我返回了 1,但没关系 - livenplay 向我展示了如何正确处理 :-) 【参考方案1】:

检查之前的数组计数:

if carsArray.count > indexPath.row + 1 
    // your code here

但您还必须正确计算您的 tableview 行数并将其放入您的 override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int

【讨论】:

以上是关于UITableViewController 单元格中的索引超出范围 - swift的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewController - 单元格大小分隔符和背景色

回退时 UITableViewController 单元格保持突出显示

故事板中具有不同单元格大小和单元格内容的 UITableViewController

在 UITableViewController 中重建表格单元格

iPhone - 两个不同的自定义单元格,具有不同的设计,在同一个 UITableViewController - 单元格保持初始大小

UITableViewController 将不同的单元格插入不同的部分