说我有一个类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
  }

}

那么这是最好的方法吗,还是有什么方法可以删除第二个私有(private)var并以某种方式只允许类函数修改只读的面向公共(public)的变量?

最佳答案

只需将您的二传手设为私有(private)即可。参见Access Control

class MyClass {

    private(set) var isValid = false

    func initialize() {
        // init stuff
        self.isValid = true
    }

    func reset() {
        // reset stuff
        self.isValid = false
    }
}

关于ios - 在Swift中,是否有更好的方法来初始化 “get” only变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29039041/

10-11 19:55