Swift get set で検索してもなかなか出てこない機能

  • 7
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Objective-C の property って Swift ではどうやって実装すればいいの?
特に set した後にいろいろやりたい!
と思って検索しても

var _hoge: String? = nil
var hoge: String? {
    get {
      return self._hoge
    }
    set {
      self._hoge = newValue
    }
}

こんな感じのナンセンスなコードしか出てこないのでメモ
他の変数を利用する場合(税抜き・税込み価格 等)は上の方法で問題ないが
個人的にやりたいことは set した後にいろいろやりたい! である

このあと滅茶苦茶 set した

まぁ、プロパティ監視がしたいだけなんだよね
なので、以下が求めるものとなる

var hoge: String? {
  willSet {
    println("willSet:\(hoge) -> \(newValue)")
  }
  didSet {
    println("didSet :\(oldValue) -> \(hoge)")
  }
}

willSetdidSet で前者は値が格納される前、後者は値が格納された後に通過する
それぞれ、 newValueoldValue という隠れた値が存在する
これは名称の変更が可能

didSet(fuga) {
   println("didSet :\(fuga) -> \(hoge)")
}

とりあえずこのくらいのメモで大丈夫かな?

参考