将属性设置器作为函数参数传递

时间:2015-10-07 08:23:45

标签: swift

我想了解是否可以将属性设置器作为参数传递。

说我有这个简单的课程

class MyValue {
    private var privateValue: Int = 0

    var value: Int {
        get {
            return privateValue
        }
        set {
            privateValue = newValue
        }
    }
}

一个需要回调的函数:

func giveValue(callback: Int -> Void) {
    callback(1337)
}

现在,如果我想将值设置为回调值,我会这样做:

let myValue = MyValue()

giveValue { i in
    myValue.value = i
}

print(myValue.value) // 1337

我知道我可以做到

giveValue { myValue.value = $0 }

但是在Swift 2中是否有一种方法可以直接将setter作为参数?类似于:

giveValue(myValue.value.setter)

1 个答案:

答案 0 :(得分:0)

不,你不能这样做。

在swift中,只要设置了ask的值,computed properties就会自动调用