Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide

スタンフォードの講義は続く。2回目になってやはり知らないことが色々と出てきた。

今日のトピックは

  • Array
  • "Computed" properties

Arrayは楽勝で理解できました。宣言法が説明されてArray型の持つメソッドの説明も出てきました。

次のComputed properties(計算型プロパティ)が少し分かりにくかったですね。

var displayValue: Double {
 get {
 return
  NSNumberFormatter().numberFromString(display.text!)!.doubleValue
 }
 set {
  display.text = "(newValue)"
  userIsInTheMiddleOfTypingNumber = false
 }
}

まず数字のString型オプショナルを扱うdisplay.textですが、保持する値を変更するときはDouble型displayValueに変更してから操作を加えないといけない。

変換をするために上記の計算型プロパティを使っているんです。

この中でString型をDouble型に変換するのが次のコード。

NSNumberFormatter().numberFromString(display.text!)!.doubleValue

NSNumberFormatterクラスをインスタンス化*1して、そのメソッドnumberFromStrin(String型)を使って、NSNumberクラス・オプショナルを返すんです。そして、そのプロパティdoubleValueを使えばDouble型の値をreturnするって話ですね。

まだまだこういうやり方は自分で考えつけないですね。

「!」が並んでいたり、newValueの使い方は既知の話なので、私の過去のエントリーを調べて下さい。

ちなみにuserIsInTheMiddleOfTypingNumberはローカル変数なので覚える必要もないし気にしないで。

今日はここまで。

*1:クラス名の後ろに「()」をつけることでいいんでしょうね