因为属性观察者观察并响应变化,这就是他们所做的,为什么他们没有出现在属性包装器中?
import Foundation
@propertyWrapper
struct Property {
private var number: Int = 0
private var maximum: Int = 0
var wrappedValue: Int {
get { return number }
set { number = min(newValue, maximum) }
}
init() {
maximum = 12
number = 0
}
init(wrappedValue: Int) {
maximum = 12
number = min(wrappedValue, maximum)
}
init(wrappedValue: Int, maximum: Int) {
self.maximum = maximum
number = min(wrappedValue, maximum)
}
willSet() {}
didSet() {}
}
struct SmallRectangle {
@Property(wrappedValue: 12, maximum: 25) var _height: Int
@Property(wrappedValue: 12, maximum: 25) var _width: Int
}
var smallRectangle = SmallRectangle()
smallRectangle._height = 18
print(smallRectangle._height)
willSet() 和 didSet() 属性观察者调用者出现错误。虽然我没有设置,但是playground还是提示我一个错误。有人可以告诉我我是否这样做或我该怎么做?