假设我有一个类,MyClass
,它可以处于有效或无效状态。所以我用一个叫做isValid
的布尔值来跟踪这一点。我希望将此值初始化为false
,直到调用类的initialize
函数。initialize
(以及相应的reset
函数)将能够直接更改isValid
布尔值。这是我到目前为止设置的:
class MyClass {
private var _isValid: Bool = false
var isValid: Bool {
get { return _isValid }
}
// any required init functions
func initialize() {
// init stuff
_isValid = true
}
func reset() {
// reset stuff
_isValid = false
}
}
那么这是最好的方法,还是有什么方法可以删除第二个私有变量并以某种方式只允许类函数修改只读面向公众的变量?
只需将您的二传手设为私有即可。请参阅访问控制。
class MyClass {
private(set) var isValid = false
func initialize() {
// init stuff
self.isValid = true
}
func reset() {
// reset stuff
self.isValid = false
}
}
获取仅属性的另一种方法
public var isValid: Bool {
return true
}
isValid = false // Cannot assign to property: 'isValid' is a get-only property