Ios 是否可以重写超级属性/方法,使其在swift中成为私有的?

Ios 是否可以重写超级属性/方法,使其在swift中成为私有的?,ios,swift,Ios,Swift,我正在编写一个UITextView子类,并将UITextView委托设置为self。我不希望客户端能够设置我的委托(因为否则子类将变得毫无意义)。有没有一种方法可以使委托属性私有?我认为您无法覆盖超类中声明的属性的可见性。但是,您可以覆盖子类中的委托属性本身,以防止调用方在运行时设置委托: override var delegate: UITextViewDelegate? { get { return super.delegate } set { // eith

我正在编写一个UITextView子类,并将UITextView委托设置为self。我不希望客户端能够设置我的委托(因为否则子类将变得毫无意义)。有没有一种方法可以使
委托
属性私有?

我认为您无法覆盖超类中声明的属性的可见性。但是,您可以覆盖子类中的
委托
属性本身,以防止调用方在运行时设置委托:

override var delegate: UITextViewDelegate? {
    get { return super.delegate }
    set {
        // either ignore this, or raise an error
    }
}
然后,在子类中将delegate设置为self时,请确保使用
super

super.delegate = self