如何将计算属性的“setter”设置为private?

时间:2016-03-14 22:39:41

标签: swift setter getter

我知道如何将存储属性的“setter”设置为private(例如public private(set) var name: String = "John"),但是如何将计算属性的“setter”设置为private?在这种情况下,变量“age”的“setter”。当我试图将关键字私有放在set(newAge){}前面时,XCode会显示错误。那么可以将计算属性的“setter”设置为private吗?

public class Person {

    public private(set) var name: String = "John"

    var age: Int{
        get {
            return 10
        }
        set(newAge){ // how to set this setter to private so to restrict modification

        }
    }
}

2 个答案:

答案 0 :(得分:15)

您可以采用与存储属性相同的方式执行此操作:

    private(set) var age: Int{
        get {
            return 10
        }
        set(newAge) {
            // setter code here
        }
    }

答案 1 :(得分:-3)

永远不会设置计算属性 - 它是"确定"你可以说它什么时候被调用,所以私有(设置)甚至可以设置都没有多大意义。