需求
对一个类的属性只希望本类可以设置修改,其他类只读。比如一个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?
}
复制代码
从而实现不同需求对属性的操作。