为什么我会得到一个' nil'在第二次通过表格单元格列表迭代期间出错/ UILabel?
1) Inside cell
2) Inside cell
fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb) po cell?.contentView.viewWithTag(TitleLabelTag)
nil
在这里,我链接代码中的元素;并注册单元格:
class DiaryTableViewCell: UITableViewCell {
@IBOutlet weak var TitleLabel: UILabel!
@IBOutlet weak var SubTitleLabel: UILabel!
@IBOutlet weak var leftImageView: UIImageView!
@IBOutlet weak var rightImageView: UIImageView!
}
class DiaryTableViewController: UITableViewController {
let kCellIdentifier = "DiaryCell"
var cellNib:UINib?
var diaryCell:DiaryTableViewCell?
var objects = NSMutableArray() //...global var.
override func viewDidLoad() {
self.title = "My Diary"
cellNib = UINib(nibName: "TableViewCells", bundle: nil)
tableView.registerClass(DiaryTableViewCell.self, forCellReuseIdentifier: kCellIdentifier)
}
...
然而,我在这里得到了运行时错误:
这是我在控制台中得到的内容:
1) Inside cell
fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb) po cell!.TitleLabel
nil
这里缺少什么?
答案 0 :(得分:0)
选择带有标签的视图是一个非常糟糕的主意。将UITableViewCell
子类化并为其提供访问元素的属性是一个更好的主意。
答案 1 :(得分:0)
如果要创建静态单元格并加载,则需要在.h中正确创建一个IBoutlet。
此外删除行
您的代码中的tableView.registerClass(...)语句。看看这个链接可能有帮助,除了它的collectionview之外非常相似。 -
答案 2 :(得分:0)
1)我将单元格注册移动到viewDidLoad()。
2)我忘了放置'?'在TitleLabel& SubTitleLabel;通知编译器这些标签可能是零。
我还没有看到改变过的细胞(空行);但我没有收到运行时错误。
不幸的是,我只是治愈了症状;不是原因。我还是没有UIL用户。
......致力于修订和清洁代码。