【发布时间】:2020-12-21 10:49:41
【问题描述】:
我正在研究以下代码的 swift 委托模式。我不太确定如何使用此选项“无需重新实例化视图。
protocol ShapeViewDelegate {
func drawShapeView(_ shapeView: ShapeView)
}
class ShapeView: UIView {
var strokeColor: UIColor?
var fillColor: UIColor?
var delegate: ShapeViewDelegate? {
didSet {
setNeedsDisplay()
}
}
override func draw(_ rect: CGRect) {
delegate?.drawShapeView(self) // self means object( ShapeView() ) is it instantiated ?
}
}
视图对象应该准备好来自委托对象,但我没有实例化它,使用协议实例化的这个对象在运行时自动实例化它。所以我正在写一个这样的例子:
class ShapeViewController: ShapeViewDelegate {
drawShapeView(view)
}
View是实例化的,也就是说本例占用了内存?
【问题讨论】: