Swift3 if letのオブジェクトのプロパティへは代入できない

昔作ったmacosのアプリケーションを、 リファクタリングも半分兼ねてDocument-Basedで書き直している。

swiftでよく使う、nilかもしれないオブジェクトのアンラップ:

if let obj = nilableobj {
    // executed successfully
    obj.doSomething()

    // cannot assign to property: obj is a let constant
    obj.someValue = newValue
}

で、objのプロパティを変更できないことに気づいた。if letをif varで変更可能になる。

if var obj = nilableobj {
    obj.someValue = newValue
}

nilableobjのsomeValueプロパティの値が変更されていることを確認した。



Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
石川 洋資 西山 勇世
技術評論社
売り上げランキング: 19,129


詳解Swift 第3版
詳解Swift 第3版
posted with amazlet at 17.05.08
荻原 剛志
SBクリエイティブ
売り上げランキング: 115,386

コメント

タイトルとURLをコピーしました