0
我有以下代碼:斯威夫特 - 擴展 - 協議 - 「超級」功能不叫
protocol Viewable
{
func didAwakeFromNib()
func foo()
}
extension Viewable where Self:UIView
{
func didAwakeFromNib()
{
// NOT CALLED!
foo()
}
}
protocol Fontable:Viewable
{
func some1()
func some2()
func some3()
}
extension Fontable where Self:UIView
{
func didAwakeFromNib()
{
some1()
some2()
some3()
}
}
class UIButtonBase:UIButton,Fontable,Viewable //(Viewable Not necessary here because Fontable already conforms to Viewable)
{
override func awakeFromNib()
{
super.awakeFromNib()
didAwakeFromNib()
}
}
正如你可以看到我有2個協議進行擴展每個和1級的UIButtonBase
。
我是新來的斯威夫特,我想知道爲什麼我的func didAwakeFromNib()
在Viewable
不叫我在按鈕類中調用didAwakeFromNib()
。 (按Fontable調用didAwakeFromNib()
,如我所料)。
嘿,首先 - 謝謝。但我沒有看到區別。因爲你寫了兩次「class UIButtonBase:UIButton,Fontable,Viewable」。這是你的意思嗎? –
Ah typo ...查看更新的答案。 – Bilal
現在我看到:)。但是我想從Viewable AND Fontable中調用didAwakeFromNib。可能嗎? –