7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

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

参考

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?