1
我正在写一个UITextView子类,并将UITextView委托设置为self。我不希望客户端能够设置我的委托(因为否则子类变得毫无意义)。有没有办法让delegate
属性保密?是否有可能重写一个超级属性/方法使其在swift中是私有的?
我正在写一个UITextView子类,并将UITextView委托设置为self。我不希望客户端能够设置我的委托(因为否则子类变得毫无意义)。有没有办法让delegate
属性保密?是否有可能重写一个超级属性/方法使其在swift中是私有的?
我不认为你可以覆盖在超类中声明的属性的可见性。但是,你可以重写delegate
财产本身在你的子类,以防止用户在运行时设置委托:
override var delegate: UITextViewDelegate? {
get { return super.delegate }
set {
// either ignore this, or raise an error
}
}
然后,当你设置委托给你的子类中的自我,一定要使用super
:
super.delegate = self
解决得很好,谢谢! – Quantaliinuxite