I次のコードを持っている:スウィフト - エクステンション&プロトコル - 「スーパー」関数が呼び出されない
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つのプロトコル、およびUIButtonBase
の1クラスを持っています。
私はSwiftの新機能です。ボタンクラスでdidAwakeFromNib()
を呼び出すとfunc didAwakeFromNib()
がViewable
にコールされない理由を知りたいと思います。 (FontableのdidAwakeFromNib()
は私が期待通りに呼んだ)。
おはよう、まずは、ありがとうございます。しかし、私は違いが表示されません。あなたが「class UIButtonBase:UIButton、Fontable、Viewable」という2回書いたからです。それはあなたが意味することですか? –
ああ、タイプミス...更新された答えを見てください。 – Bilal
今私は:)参照してください。しかし、私はdidAwakeFromNibをViewableとFontableから呼びたいと思っています。出来ますか? –