willSet
我看到了使用&didSet
来替换我在 Objective-C 中使用的部分 KVO 类型代码的潜力。Objective-C 的好处之一是它的活力,特别是在运行时创建行为的能力。为了让willSet
&didSet
对我有用,我需要能够动态分配他们的行为。是否可以设置它们的“内容”或它们动态体现的行为?一个用例是将模型的属性绑定到视图。在伪代码中:
mvvm = new MVVM(packageModel, 'url', packageView, 'urlLabel')
class MVVM {
init(model: Model, modelPropertyName : NSString, view: View, viewPropertyName : NSString) {
model.propertyDescriptor('willSet', modelPropertyName, (newUrl){
view[viewPropertyName].text = newUrl
})
}
}