[英]Lazy property with UIView subclass
我想用延迟初始化添加UIView
子类属性,例如:
import UIKit
class MyView: UIView {}
class Controller: UIViewController {
lazy var myView = MyView()
}
但是我有一个错误:
无法将值类型'UIView'转换为指定类型'MyView'我可以使用属性类型修复错误:
lazy var myView: MyView = MyView()
或将初始化更改为:
let myView = MyView()
但为什么Swift无法推断这种类型呢?
重要的是提供一个类型,如果你被初始化为一个标记为lazy的变量。
lazy var myView:MyView = MyView()
如果你为MyView提供init,那么它会没问题。但为什么呢? 我花了好几个小时弄清楚,结果是😭,等待主人回答。
class MyView: UIView {
init() {
super.init(frame: .zero)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.