【发布时间】:2016-01-22 08:55:14
【问题描述】:
谁能告诉我为什么在惰性函数 runEngine 和 stopEngine 中的这个“奇怪”代码(我很喜欢 Swift ;D)中,打印方法永远不会执行? (请在操场上运行此代码)。
谢谢!
protocol EngineDelegate {
func engineDidStart()
func engineDidStop()
}
class Engine {
var delegate: EngineDelegate?
lazy var runEngine : () -> () = {
print("Engine has been started")
self.delegate?.engineDidStart()
}
lazy var stopEngine : () -> () = {
print("Engine has been stoped")
self.delegate?.engineDidStop()
}
}
class Car: EngineDelegate {
let engine = Engine()
init() {
engine.delegate = self
}
func engineDidStop() {
print("MyOwnStop")
}
func engineDidStart() {
print("MyOwnStart")
}
}
let car = Car()
car.engine.runEngine()
【问题讨论】:
标签: ios swift function delegates lazy-evaluation