我创建了一个继承UITableViewCell
的类:
class MyCell: UITableViewCell {
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
}
}
没有编译错误。然后,我声明了一个计算变量:
class MyCell: UITableViewCell {
var student: Student{
willSet {...}
}
...
}
现在,编译器开始提示 Class 'MyCell' has no initializers
。然后,我定义了一个空的初始值:
class MyCell: UITableViewCell {
init(){}
var student: Student{
willSet {...}
}
...
}
错误仍然存在。为什么在声明计算变量后,编译器开始提示该错误以及如何消除该错误?
最佳答案
在 cellForRow...
中设置(非可选)数据模型项的 TableView 单元格中的推荐解决方案是隐式解包可选。
无需覆盖任何初始化程序。
class MyCell: UITableViewCell {
var student: Student! {
willSet {...}
}
}
注意:
student
不是计算属性。属性观察器只能在存储的属性中使用。
关于ios - 声明计算变量后,编译器开始提示类没有初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464546/