ios - 插座已连接,但在展开可选值时意外发现 nil
问题描述
我正在尝试在 UITableViewCell 中设置 UITableView,并且我按照选择的答案是否可以在 UITableViewCell 中添加 UITableView
这是包含内部 TableView 的 TableViewCell 类的代码:
import UIKit
class tvc_item: UITableViewCell, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var ivItem: UIImageView!
@IBOutlet weak var lblItemName: UILabel!
@IBOutlet weak var tvInner: UITableView!
var itemdata = Item()
override func awakeFromNib() {
super.awakeFromNib()
setUpTable()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setUpTable()
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
override func layoutSubviews() {
super.layoutSubviews()
//tvInner?.frame = CGRectMake(0.2, 0.3, self.bounds.size.width-5, self.bounds.size.height-5)
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func setUpTable(){
tvInner.delegate = self // Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
tvInner.dataSource = self
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return itemdata.rows.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell_itemrow") as! cell_itemrow
cell.lblRowLabel.text = String(itemdata.rows[indexPath.row].size)
return cell
}
}
当我运行代码时,它死在这一行:
tvInner.delegate = self
有错误:
线程 1:致命错误:在展开可选值时意外发现 nil
所以我假设 tvInner 为零,但为什么呢?我能做些什么呢?
tvInner 的插座似乎连接正确,并在插座图标内显示一个黑圈。
解决方案
您需要覆盖awakeFromNib
并setUpTable()
在此方法内移动。
推荐阅读
- mysql - MySQL 选择增量
- python - Selenium webdriver:发送密钥时不必要且重复的值
- r - 如何在 R 中为多重回归运行蒙特卡罗模拟?
- asp.net-core - HTTP 错误 500.19 - 内部服务器错误 (0x8007000d)
- javascript - Ramda 转换为自由点样式
- hadoop - Hadoop:hadoop namenode -format 会破坏数据节点,为什么?
- c++ - 有没有办法让 Visual Studio 编译器为此 C++ 代码发出警告?
- python - Python:在列表列表中查找名称
- python - Pandas 数据框 - 按来自另一个数据框的值过滤行
- numpy - 向量化正则化梯度下降未通过数值检查