🌸

【Swift】willSet, didSetの使い方

2022/02/09に公開

willSet

struct User {
    var email: String
    var password: String {
        willSet {
            print("変更前:\(password)\n変更後:\(newValue)")
        }
    }
}
var user = User(email: "sample@gmail.com", password: "sample1234")
user.password = "newsample1234"
// => 変更前:sample1234/変更後:newsample1234

didSet

struct User {
    var email: String
    var password: String {
        didSet {
            if password.count < 8 {
                print("パスワードは8文字以上で入力してください")
                password = oldValue
            }
        }
    }
}
var user = User(email: "sample@gmail.com", password: "sample1234")
user.password = "sample"
// => パスワードは8文字以上で入力してください

Discussion