-1

「init」メソッドをオーバーライドしない場合、initファミリメソッド[ self init ]との間で何が違うのだろうか 。self = [ super init ]

そして、なぜ人々は通常self = [ super init ]initファミリーメソッドで使用するのですか?

4

2 に答える 2

4

[ self init ]自己クラスを初期化していることを意味します。

self = [ super init ]スーパークラスを初期化することを意味し、返されるアドレス/メモリ位置はセルフクラスに設定されます。

于 2012-12-10T17:26:35.210 に答える
0

人々はself = [ super init ]までのすべての親クラスに使用するNSObjectので、これを行うことは非常に重要です

普段 if (self = [ super init ]) {... return self;}は万が一に備えて使っself == nilていますが、こんなことは一度もありません

[self init]親クラスの初期化を無視するだけなので、正しくありません。これはバグの原因となる可能性があります。

于 2012-12-10T17:28:32.037 に答える