需求
對一個類的屬性只希望本類可以設定修改,其他類只讀。比如一個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?
}
複製程式碼
從而實現不同需求對屬性的操作。