文書の表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== イニシャライザの返り値 ====== サンプルソースを見ていると、各クラスのイニシャライザは <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(外部編集)