【发布时间】:2017-07-27 03:37:08
【问题描述】:
我想添加UIView子类属性懒初始化,例如:
import UIKit
class MyView: UIView {}
class Controller: UIViewController {
lazy var myView = MyView()
}
但我有一个错误:
无法将值类型“UIView”转换为指定类型“MyView” 我可以用属性类型修复错误:
lazy var myView: MyView = MyView()
或将初始化更改为:
let myView = MyView()
但是为什么 Swift 不能推断类型呢?
【问题讨论】:
-
如果我调用 UIView 初始化程序之一
lazy var myView = MyView(frame: .zero)也可以工作。原来的问题仍然存在...... -
@kennytm,好话,谢谢!
-
不知道为什么,但您需要调用指定的初始化程序才能使其正常工作。
标签: ios swift type-inference lazy-initialization