1. ホーム
  2. objective-c

Objective-C: initとinitialize

2023-08-15 20:13:16

質問

Objective-Cの場合、「」と「」の違いは何ですか? init メソッド(つまり、クラスの指定イニシャライザー)と initialize メソッドとの違いは何ですか?それぞれどのような初期化コードを入れればよいのでしょうか?

どのように解決するのですか?

-init はインスタンスメソッドで、特定のオブジェクトを初期化するために使用されます。 +initialize はクラスメソッドで、クラスのインスタンスが生成される前や他のクラスメソッドが実行される前に実行されます。 +initialize は通常使用するものではありませんが、クラス全体が使用する可能性のある静的変数を設定したり、インスタンスが作成される前に特定の条件が満たされていることを確認するのに便利です。

の中に含まれるコードは -init メソッドに属するコードは イニシャライザの実装 のセクションで詳しく説明されています。 Objective-Cプログラミング言語 . また、クラスの初期化に関する議論もあります(例えば +initialize のような) クラスの初期化についての議論もあり、 同じ文書内でそれを行う必要がある場合もあります。 クラスオブジェクト セクションで説明します。に入るコードは +initialize に入るコードは、一般に、最初の段階で初期化する必要があるクラスの特別な機能に強く結びついています。で覚えておくべき重要なことのひとつは +initialize で (そしてどのクラスメソッドでも) 注意すべき重要な点は self はクラスのインスタンスではなく、クラスそのものを指すということです。