Cocoa では、スーパークラスの指定された初期化子を常に呼び出すことをお勧めします。オブジェクトが init で初期化されていなくても、オブジェクトの初期化中に init が常に呼び出されると仮定しても安全ですか?
たとえば、、またはNSThingie
のように初期化できるクラスがあるとします。init をオーバーライドすると、初期化中のある時点で呼び出されると想定できますか?[[NSThingie alloc] initWithFoo: foo]
[[NSThingie alloc] initWithFoo: foo andBar: bar]
編集
たぶん、私の最初の質問はあまりうまく表現されていませんでした。init をオーバーライドすると、スーパークラスの init が呼び出されないことがわかっているため、明示的に init を呼び出す必要があります。私が疑問に思っているのは、Apple フレームワークで[NSObject init]
常に呼び出されるかどうかです。のような Apple オブジェクトを初期化[[NSAppleClass alloc] initWithSomething: something]
すると、NSObject の init が最終的に NSAppleClass の初期化中に呼び出されると想定できますか?