假设我有一个类MyClass
,它可以处于有效状态或无效状态。所以我用一个名为isValid
的bool跟踪这个。我想将此值初始化为false
,直到调用类initialize
函数为止。 initialize
(以及相应的reset
函数)可以直接更改isValid
bool的值。这就是我到目前为止所建立的:
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
}
}
这是最好的方法吗,或者有什么方法可以删除第二个私有var并以某种方式只允许类函数修改一个只读公共面向变量?
答案 0 :(得分:11)
让你的二传手专用。请参阅Access Control。
class MyClass {
private(set) var isValid = false
func initialize() {
// init stuff
self.isValid = true
}
func reset() {
// reset stuff
self.isValid = false
}
}