如何解决在 UITableViewCell 中的awakeFromNib 中无法访问IBOutlet
据我所知,我已经正确设置了一切(注册和出队)。但是,当我尝试在awakeFromNib() 中访问插座时,我得到
'致命错误:在隐式解包可选值时意外发现 nil:文件 ....MechEntryCell.swift,第 18 行'
这很奇怪,因为其他 UITableViewCells 做类似的事情似乎工作正常 - 和我看起来一样。
代码失败:
class MechEntryCell: UITableViewCell {
@IBOutlet weak var mechName: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
mechName.text = "Hello" <<<<<<< CRASHES
}
func setdamageOption(_ damageOption: AdditionaldamageOption) {
mechName.font = UIFont.boldSystemFont(ofSize: mechName.font.pointSize)
mechName.text = damageOption.label <<<< WORKS FINE IF ABOVE CRASH REMOVED
}
}
我也注册和出队:
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
tableView.register(UINib(nibName: MechEntryCell,bundle: nil),forCellReuseIdentifier: "MechEntryCell")
........
}
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return tempdamageOptions.count
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: MechEntryCell.identifier) as? MechEntryCell {
cell.setdamageOption(tempdamageOptions[indexPath.item])
return cell
}
return UITableViewCell()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
特别说明: 当我在 tableView(cellforRowAt:) 方法中设置标签时,它工作正常 - 所以 IBOutlet 最终会链接。我做错了什么?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。