需求
对一个类的属性只希望本类可以设置修改,其他类只读。比如一个Person类有一个name属性,只能在类内部赋值,其他类只读。
实现
可使用private(set)对属性进行修饰,则getter为默认级别,setter为private级别。
class Person {
private(set) var name: String?
}
let person = Person()
person.name = "dow" //报错 Cannot assign to property: 'name' setter is inaccessible
let personName = person.name
也可以设置属性为私有setter公有getter:
class Person {
public private(set) var name: String?
}
从而实现不同需求对属性的操作。