我有一个包含10行的tableView。因为我想得到我的TableView的第三个单元格。所以我必须得到第3行的indexPath。我该怎么做? 我试过了:
var sections = self.diceFaceTable.numberOfSections()
var indexPathOfLastSelectedRow = NSIndexPath(forRow: 2, inSection: sections)
var lastSelectedCell = self.diceFaceTable.cellForRowAtIndexPath(indexPathOfLastSelectedRow) as! TableViewCell
但我收到了一个错误。我怎么能得到它?
编辑:
我有一张带有一些复选标记图像的表格。我想在使用我的代码检查所选行之前取消选中最后一行:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var cell = self.diceFaceTable.cellForRowAtIndexPath(indexPath) as! DiceFaceTableViewCell
if selectedDiceFace != indexPath.row {
var indexPathOfLastSelectedRow = NSIndexPath(forRow: selectedDiceFace, inSection: 0)
println("indextPath: \(indexPath)")
println("indextPathOfLastSelectedRow: \(indexPathOfLastSelectedRow)")
println("selectedDiceFace: \(selectedDiceFace)")
println("selectedRow: \(indexPath.row)")
var lastSelectedCell = self.diceFaceTable.cellForRowAtIndexPath(indexPathOfLastSelectedRow) as! DiceFaceTableViewCell
lastSelectedCell.selectedImg.image = UIImage(named: "uncheck")
selectedDiceFace = indexPath.row
cell.selectedImg.image = UIImage(named: "check")
}
cell.setSelected(false, animated: true)
}
我可以获取最后一个选中的单元格并取消选中该选项并检查选择行。一切正常,除非我滚动表格,然后检查新行。我将在崩溃时遇到错误"致命错误:在解开一个Optional值时意外发现nil"在线:
var lastSelectedCell = self.diceFaceTable.cellForRowAtIndexPath(indexPathOfLastSelectedRow) as! DiceFaceTableViewCell
我不知道我的代码中的问题是什么导致我遇到这个问题,我滚动表格然后选择该行。
答案 0 :(得分:2)
节也从0开始编号,因此您需要将inSection
指定为0:
var indexPathOfLastSelectedRow = NSIndexPath(forRow: 2, inSection: 0)
当然,如果您只有一个部分。