Ios 在扩展中的弱属性上添加didSet observer
我试图创建一个UITextField扩展,它在设置委托时执行附加功能Ios 在扩展中的弱属性上添加didSet observer,ios,swift,delegates,uitextfield,Ios,Swift,Delegates,Uitextfield,我试图创建一个UITextField扩展,它在设置委托时执行附加功能 extension UITextField { override weak public var delegate: UITextFieldDelegate? { didSet { print("Do stuff") } } } 此操作失败,有三个错误: 'delegate' used within its own type 'weak' can
extension UITextField {
override weak public var delegate: UITextFieldDelegate? {
didSet {
print("Do stuff")
}
}
}
此操作失败,有三个错误:
'delegate' used within its own type
'weak' cannot be applied to non-class type '<<error type>>'
Property does not override any property from its superclass
在其自身类型中使用的“委托”
“弱”不能应用于非类类型“”
属性不重写其超类中的任何属性
要在代理设置时打印
do stuff
,我需要更改什么?您不能使用扩展覆盖代理属性,您需要创建子类:
class TextField: UITextField {
override weak var delegate: UITextFieldDelegate? {
didSet {
super.delegate = delegate
print("Do stuff")
}
}
}
但这似乎有点错误。您想要实现什么?最终,我试图了解如何按顺序调用多个代理(而不是仅限于一个)。然而,无论如何,在这种情况下,观察者模式更强大。