Ios 在扩展中的弱属性上添加didSet observer

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

我试图创建一个UITextField扩展,它在设置委托时执行附加功能

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")
        }
    }
}

但这似乎有点错误。您想要实现什么?

最终,我试图了解如何按顺序调用多个代理(而不是仅限于一个)。然而,无论如何,在这种情况下,观察者模式更强大。