gpt4 book ai didi

ios - UITableViewCell 内的 TableView - 必须注册一个 nib 或类

转载 作者:行者123 更新时间:2023-11-29 00:12:09 25 4
gpt4 key购买 nike

我将一个 UITableView 放入 UITableViewCell 中。

我已将 UITableViewCell 类扩展为 ,UITableViewDataSource、UITableViewDelegate

制作了@IBOutlet var tableView: UITableView!

添加了以下内容:

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style , reuseIdentifier: reuseIdentifier)
setUpTable()
}

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
setUpTable()
}

override func awakeFromNib() {
super.awakeFromNib()
setUpTable()
}

其中 setUpTable() 的实现如下:

func setUpTable(){
tableView?.delegate = self
tableView?.dataSource = self
//tableView.register(UINib(nibName: "AvailableTimingsTableViewCell", bundle: nil), forCellReuseIdentifier: "TimingCell")
}

如果我将注释行保留在 setUpTable() 中,我会得到:

'unable to dequeue a cell with identifier TimingCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

如果我取消注释我得到的评论:

fatal error: unexpectedly found nil while unwrapping an Optional value

在同一行。

setUpTable()之后,我将它们实现为:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "TimingCell", for: indexPath) as?AvailableTimingsTableViewCell

cell?.dayNameLabel.text = "Wednesday"
cell?.timeLabel.text = "01:00 PM - 03:00 PM"

return (cell)!
}

编辑以下是类名称的屏幕截图。我已经根据评论和答案仔细检查了一切是否正常。
enter image description here enter image description here

最佳答案

我认为 init() 中的 setUpTable() 调用得太早了。此时 View 尚未加载。在 viewDidLoad() 中进行该设置,也不要注释掉注册单元格。除此之外,代码看起来不错。

关于ios - UITableViewCell 内的 TableView - 必须注册一个 nib 或类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46170189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com