在tableviewDelegate中-cellforRowAt方法。 我仍然尝试,但是没有运行。
我使用自定义表格视图单元格并在表格视图中显示。
此错误的原因是什么?
for i in 0..<4 {
if modelInViewModel[indexPath.row].body_images[i] == nil {
cell.uploadImageView![i].isHidden = true
} else {
let imageView = modelInViewModel[indexPath.row].body_images[i]
cell.uploadImageView![i].image = UIImage(named: imageView!)
}
}
答案 0 :(得分:1)
此答案将向您展示如何查找导致错误的原因-由您自行解决。
首先,您应该(几乎)永远不要用!
强行打开可选的选项,这只是在请求崩溃。
此外,您需要拆分代码行以查找实际错误。用以下内容替换您发布的代码块:
for i in 0..<4 {
if i > modelInViewModel.count - 1 {
fatalError("i = \(i) but modelInViewModel has only \(modelInViewModel.count) elements!")
}
let vm = modelInViewModel[indexPath.row]
if i > vm.body_images.count - 1 {
fatalError("i = \(i) but modelInViewModel[indexPath.row].body_images has only \(vm.body_images.count) elements!")
}
let imgViews = cell.uploadImageView!
if i > imgViews.count - 1 {
fatalError("i = \(i) but cell.uploadImageView has only \(imgViews.count) elements!")
}
// comment out your current code for now....
//if modelInViewModel[indexPath.row].body_images[i] == nil {
// cell.uploadImageView![i].isHidden = true
//} else {
// let imageView = modelInViewModel[indexPath.row].body_images[i]
// cell.uploadImageView![i].image = UIImage(named: imageView!)
//}
}
您应该(至少)在其中的fatalError
行中发生崩溃,这将告诉您在哪里出现Index out of range
错误。