我的桌面视图超过5个单元格,但是由于行的高度,屏幕上只出现了5个单元格。在tableview外面有一个按钮,通过点击它,我想访问每个单元格中的内容。以下是点按代码,
@IBAction func submitTapped(_ sender: Any) {
//array.count is bigger than the number of appearing cells on the screen.
for i in 0..<array.count {
let index = IndexPath(row: i, section: 0)
let cell = self.table.cellForRow(at: index) as! CustomTableViewCell
for a in 0...6 {
print(i)
print(a)
if let letter = cell.letter.text {
print(letter)
}
}
}
}
点击按钮后,我的代码旁边出现错误,让cell = self.table.cellForRow(at:index)为! CustomTableViewCell,Thread 1:致命错误:在展开Optional值时意外发现nil
我认为是因为屏幕上出现的单元格数量,如果array.count等于或小于屏幕上可以出现的单元格数,则没有错误。
我调整了单元格的高度并在屏幕上显示了x个单元格,然后如果是array.count&gt; x,然后它崩溃,如果等于或小于x,那么它就可以工作。
我不确定问题是什么,是因为可重复使用的细胞?如何访问不在屏幕上的单元格中的内容?
答案 0 :(得分:1)
Modify your method:
@IBAction func submitTapped(_ sender: Any) {
//array.count is bigger than the number of appearing cells on the screen.
for i in 0..<array.count {
let index = IndexPath(row: i, section: 0)
if let cell = self.table.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath) as? CustomTableViewCell {
for a in 0...6 {
print(i)
print(a)
if let letter = cell.letter.text {
print(letter)
}
}
}
}
}