init
Objective-C では、メソッド (つまり、クラスの指定された初期化子) とメソッドの違いは何initialize
ですか? それぞれにどのような初期化コードを入れる必要がありますか?
2 に答える
-init
特定のオブジェクトを初期化するために使用されるインスタンス メソッドです。+initialize
クラスのインスタンスが作成される前、および他のクラス メソッドが実行される前に実行されるクラス メソッドです。+initialize
ほとんどの場合使用するものではありませんが、クラス全体で使用する可能性のある静的変数を設定したり、インスタンスが作成される前に特定の条件が満たされていることを確認したりする場合に便利です。
-init
メソッドに属するコードは、 The Objective-C Programming Languageの「 Implementing an Initializer」セクションで詳しく説明されています。クラスの初期化 (つまり) と、なぜそれを行う必要があるのかについても、同じドキュメントのクラス オブジェクトセクションで説明しています。入るコードは、通常、最初に初期化する必要があるクラスの特別な機能に強く結び付けられます。(および任意のクラス メソッドで)留意すべき重要な点の 1 つは、クラス メソッドでは、クラスのインスタンスではなく、クラス自体を参照することです。+initialize
+initialize
+initialize
self
Java 開発者に例えると、init はコンストラクターのようなものであり、initialize はクラスの静的ブロックのようなものです。