読者です 読者をやめる 読者になる 読者になる

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

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)")
}

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

参考

Qiita に書いた記事