だいたいそれでいいんじゃないの

つれつれなるkixixixixiの技術的なストック。http://reload.co.jp

プロパティのsetter,getter

プロパティのsetter,getterが簡単にできるようなのでいじってみた。

private var _name = ""
var name : String
{
    get
    {
       return _name
    }
    set(newValue)
    {
        _name = "Mr. \(newValue)"
    }
}

こんな感じ。 set(newValue)setに省略できたり。
nameに代入されたときsetがよばれて、nameの値を参照するときにgetがよばれるだけの簡単な仕組み。
これは代入するときに前に"Mr."ってつけてるだけ。 空だったら"noname"と返したり監視することができます。

private var _name = ""
var name : String
{
    get
    {
       return (_name as NSString).length > 0 ? _name : "noname"
    }
    set(newValue)
    {
        _name = "Mr. \(newValue)"
    }
}

また細かく監視するために、代入する直前、直後の処理を走らせることができます。

var name : String
{
    willSet(newValue)
    {
        
    }
    didSet(newValue)
    {
        
    }
}

これを使うとデータの隠蔽やnilへのアクセスを防いだり、データの整形などすごく便利そうですね。
そして書き方がかっこいい。

以上!