我知道如何将存储属性的“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
}
}
}
答案 0 :(得分:15)
您可以采用与存储属性相同的方式执行此操作:
private(set) var age: Int{
get {
return 10
}
set(newAge) {
// setter code here
}
}
答案 1 :(得分:-3)
永远不会设置计算属性 - 它是"确定"你可以说它什么时候被调用,所以私有(设置)甚至可以设置都没有多大意义。