菜鸟在这里。
我正在globalCount
使用 Swift 3 在 iOS 中以编程方式创建多个 ( ) UISlider。grandTotal
浮点值在这些滑块的值之间进行划分,当一个值发生更改时,它们都会调整为总和为grandTotal
. 没有滑块低于其最小值 0 或高于最大值 100。
对于少于 7 的滑块数量,一切都运行良好。一旦我添加了 7 或更多。尝试使用基础结构值更新单元格的滑块值时发生崩溃。
我已将单元格更新功能移至其自己的功能,以尝试隔离问题。我仍然会崩溃。崩溃是
EXC_BAD_INSTRUCTION(代码=EXC_1386_INVOP,子代码=0x0)
并在线上出现let loopCell
。
有没有人对这是关于什么有任何建议?为什么它适用于低数量而不是更高数量的细胞?这是有条件的事情吗?
这是单元格更新功能
func updateCells() {
for i in 0...globalCount - 1 {
let loopCell: MyTableCell = ((myTableView.cellForRow(at: IndexPath(row:i, section: 0))) as? MyTableCell)!
loopCell.valueLabel.text = String(structData[i].value)
loopCell.cellSlider.value = structData[i].value
}
}
我的用户界面:
cellForRow(at:)
返回nil
如果表视图细胞是不可见的(当前屏幕之外)。您正在崩溃,因为您正在强制展开nil
。相反,使用可选绑定 ( if let
) 来安全地解开值:
func updateCells() {
for i in 0..<globalCount {
if let loopCell = myTableView.cellForRow(at: IndexPath(row: i, section: 0)) as? MyTableCell {
loopCell.valueLabel.text = String(structData[i].value)
loopCell.cellSlider.value = structData[i].value
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句