blog:2005:2005-09-05

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

blog:2005:2005-09-05 [2013-04-10 13:21]
Decomo 作成
blog:2005:2005-09-05 [2015-01-06 11:51]
行 1: 行 1:
-====== イニシャライザの返り値 ====== 
- 
-サンプルソースを見ていると、各クラスのイニシャライザは 
-<code objc> 
-return self; 
-</code> 
- 
-<code> 
-obj = [super init] 
-... 
-return obj; 
-</code> 
-というコードで、自身を返している。うーん何でだろう? 
- 
-わが師匠[[http://kimatten.hp.infoseek.co.jp/|し~くる氏]]に聞いてみたところ、 
-<code objc> 
-[hogeHoge alloc]; 
-[hogeHoge init] 
-</code> 
- 
-<code objc> 
-[[hogeHoge alloc] init] 
-</code>と短縮して書ける。そして「親クラスのイニシャライズが成功したか否かの判別に使う」とのこと。 
- 
-ふーむ、最初の用途は簡単に理解できる。[hogeHoge alloc] が自身(self)を返すから、[[hogeHoge init] alloc] = [self init] = [hogeHoge init] ということが言える。 
- 
-でも、親クラスのイニシャライズの判別は、ちょっとわからない。なぜ、self にスーパークラスの返り値を入れることで、判別できるのだろう……?そもそも、親クラスのイニシャライズの成否を調べる場面が、今は思い浮かばない。 
- 
-まぁ、ボチボチ調べていくことしますか。 
- 
-**(2013-04-10 追記)**\\ 
-今読み返してみると、完全に「日本語でおk」な内容な件。当時の俺は何を考えていたんだろう…。 
  
  • blog/2005/2005-09-05.txt
  • 最終更新: 2015-01-06 11:51
  • (外部編集)