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