2005年09月05日
イニシャライザの返り値
http://decomo.info/wiki/blog/2005/2005-09-05に移動しました。
サンプルソースを見ていると、各クラスのイニシャライザは
return self;
や
obj = [super init]
〜〜〜
return obj;
〜〜〜
return obj;
という感じで、自身を返している。うーん何でだろう?
わが師匠 し~くる氏に聞いてみたところ、
- [hogeHoge alloc]; [hogeHoge init] が [[hogeHoge alloc] init] と書ける
- 親クラスのイニシャライズが成功したか否かの判別に使う
ふーむ、最初の用途は簡単に理解できる。[hogeHoge alloc] が自身(self)を返すから、[[hogeHoge init] alloc] = [self init] = [hogeHoge init] ということが言える。
でも、親クラスのイニシャライズの判別は、ちょっとわからない。なぜ、self にスーパークラスの返り値を入れることで、判別できるのだろう……?そもそも、親クラスのイニシャライズの成否を調べる場面が、今は思い浮かばない。
まぁ、ボチボチ調べていくことしますか。
Decomo | 10:05