77

initObjective-C では、メソッド (つまり、クラスの指定された初期化子) とメソッドの違いは何initializeですか? それぞれにどのような初期化コードを入れる必要がありますか?

4

2 に答える 2

127

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

-initメソッドに属するコードは、 The Objective-C Programming Languageの「 Implementing an Initializer」セクションで詳しく説明されています。クラスの初期化 (つまり) と、なぜそれを行う必要があるのか​​についても、同じドキュメントのクラス オブジェクトセクションで説明しています。入るコードは、通常、最初に初期化する必要があるクラスの特別な機能に強く結び付けられます。(および任意のクラス メソッドで)留意すべき重要な点の 1 つは、クラス メソッドでは、クラスのインスタンスではなく、クラス自体を参照することです。+initialize+initialize+initializeself

于 2011-05-31T17:55:35.690 に答える
19

Java 開発者に例えると、init はコンストラクターのようなものであり、initialize はクラスの静的ブロックのようなものです。

于 2013-03-23T09:06:33.207 に答える