複数のイニシャライザ
クラスは、複数の初期化メソッドを定義することができ、入力の異なる形式をとるか、クライアントの利便性のためにデフォルトの初期化値を提供するかいずれかのときにできます。クラスが異なる形式で、または異なるソースから初期化データを取る場合、各形式またはソースの初期化子を宣言できます。たとえば、NSString のクラスには、(特に)URL リソースから、または Unicode 文字の配列として、文字列データを取得するための初期化子があります。
複数のイニシャライザには、またプログラミングの利便性があります。クラスは、一方では、一連のイニシャライザを持つ事が出来、クライアントに、すべての初期値を指定させ、他方では、これらの値のほとんどまたは全てを、デフォルトとして供給します。クラスのクライアントは、それ以降、アクセサメソッドやプロパティを通じてデフォルト値に新しい値を代入できます。
フレームワークのクラスは時々、複数のファクトリメソッドと、複数のイニシャライザを同様に持っています。それらは便利である事と、異なる形式で初期化データを取るという点では類似しています。しかし、それらは返されたオブジェクトを割り当てるだけでなく、それを初期化します。
指定イニシャライザ
初期化パラメータの完全な補完を取る、クラスのイニシャライザは、通常は 指定イニシャライザ です。サブクラスの指定イニシャライザは、super にメッセージを送って、スーパークラスの指定イニシャライザを呼び出す必要があります。コンビニエンス(またはセカンダリ) のイニシャライザ ー それは init を含むことができるーは、super を呼び出しません。その代わりに、それらは(self へのメッセージを通して) それに渡されていないパラメータのデフォルト値を供給して、次のほとんどのパラメータと共に一連のイニシャライザを呼び出します。このシリーズの最終的なイニシャライザが指定イニシャライザです。
前提条件の記事
関連記事
既出の議論
Objective-C でのプログラミング 内の オブジェクトは動的に作成される
次の章
前の章