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)") } }
willSet
と didSet
で前者は値が格納される前、後者は値が格納された後に通過する
それぞれ、 newValue
と oldValue
という隠れた値が存在する
これは名称の変更が可能
didSet(fuga) { println("didSet :\(fuga) -> \(hoge)") }
とりあえずこのくらいのメモで大丈夫かな?