Day: August 30, 2014

Swift: convenience init手強くてやり直し

とても向こう側に川岸があり、まるで岸が見えないので、海にいるのか、川にいたのか、違いがわからなくなってきています。

もう一度、最初からやりなおさないと、コンパイラがまともに動かなくなりました。convenience init自体は良さそうな感じなのですが、組み合わせが悪く、おまけに配列のAnyにobjectを入れようとする前後のところからおかしくなってしまいました。9月9日に新iPhoneが発表されるらしいですが、Yosemiteは10月で変わらずなのでしょうか?

FileNodeを最初からやり直すのが早道。

その間、次の3点を学習しました。

  • Any vs. AnyObject: AnyObjectはAnyよりも適用範囲が狭い。
    ① クラスのインスタンスに対して利用可能。
    AnyObjectIntBool などには利用不可。
  • is: is で変数・定数の型チェックができる。
    if abc is Int {  return } //abcがIntのときreturn
  • as?: 変換対象がその型に変換できない場合には nil が入る。
    ?なしで型変換ができないとき、エラーになる。

Swiftに関するメモ その7 – 型変換を参照。