我做了一个简单的项目,只是尝试使用自定义UITableView
实现UITableViewCell
,但是每次项目运行时,它都会得到
“致命错误:在隐式展开一个 可选值”
并且Xcode说我的UITableView
为零。我如何解决它? Swift版本是5.0,Xcode版本是10.2.1。
我想我已经学习了使用自定义UITableViewCell
实现UITableView所需的所有知识,但是它不起作用。实际上,我一遍又一遍地做了这样的事情,但是由于某种原因,这次失败了。
我写了如下的UITableView的register()
函数dequeueReusableCell()
函数,以确保重用标识符没有错误并且其他用法正确。
我断开了xib和它的所有者类之间的IBOutlet
,然后又创建了一个新类。
我确保xib文件中没有引用出口,该文件的所有者类中缺少相应的变量。
我删除了DerivedData
文件夹中的所有内容,重新启动了MacBook和Xcode并执行了“清理项目”。
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var myTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.myTableView.register(UINib.init(nibName: "myTableViewCell", bundle: nil), forCellReuseIdentifier: "myCell")
// Do any additional setup after loading the view.
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "myCell") as! myTableViewCell
cell.mymyLabel.text = "Yay!"
return cell
}
myTableViewCell类:UITableViewCell {
@IBOutlet weak var mymyLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
变量myTableView每次都为nil,尽管不是应该为零。 您可以从Github下载我的项目,包括上面的代码并为我运行吗?如果您能给我结果,或者让我知道我现在没有意识到的任何错误,我将不胜感激。 https://github.com/Satoru-PriChan/CustomCellTest