Swiftで遊ぼう! - 212 - Developing iOS 8 Apps with Swift - More Xcode and Swift, MVC
Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide
スタンフォードの講義は続く。2回目になってやはり知らないことが色々と出てきた。
今日のトピックは
- Array
- "Computed" properties
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:クラス名の後ろに「()」をつけることでいいんでしょうね