私は[UIViewのINIT]および[UIViewのinitWithFrame:XX]で混乱しています、私はstackoverflowのを検索し、私は質問と回答の下に見つけた後:iOS:UIViewサブクラスのinitは[super init]を呼び出し、スーパークラスのメソッドを呼び出します。なぜ[subclass initWithFrame:xx]を呼び出すのですか?
Why do both init functions get called
iOS: UIView subclass init or initWithFrame:? 、私はinitwithFrameが設計されてkonw私が[myview init](myViewはUIViewのサブクラスであり、initとinitwithfrmeを上書きしています:)を呼び出したときに、[super init]を呼び出すと[super initWithFrame:xx]を呼び出しますsuperは、スーパークラスのメソッドを検索します。なぜ[myView initWithFrame:xx]を呼び出すのですか? initWithFrame:
以来
ありがとうございました。私はそれを見ることができます。あなたが私のリストとして他の質問で見つけられたのは混乱させます。答えは[YourClass init] - > [super init] - > [YourClass initWithFrame] - > [super initWithFrame:CGRectZero]サブクラスのinitWithFrameを呼び出してスーパークラスを呼び出すと、混乱しますか?なぜ[YourClass initWithFrime:XX]に電話をするのですか? – Luca
答えを更新しました。本当に[super init]が[self initWithFrame]を呼び出しています...これは[YourClass initwithFrame:]をトリガーし、次に[super initWithFrame:]を呼び出します。 –
答えはすべきです。しかし、なぜ[super init]が[self initWithFrame]を呼び出すのか "ということは、スーパークラスでメソッドを見つけるためにコンパイラにマジックワードを知らせるので、" [super init]は[super initWithFrame]を呼び出すべきですか "??? – Luca