Re-initialize a lazy initialized variable in Swift

前端 未结 7 816
没有蜡笔的小新
没有蜡笔的小新 2020-12-04 11:08

I have a variable that initialized as:

lazy var aClient:Clinet = {
    var _aClient = Clinet(ClinetSession.shared())
    _aClient.delegate = self
    return          


        
相关标签:
7条回答
  • 2020-12-04 11:50

    lazy is explicitly for one-time only initialization. The model you want to adopt is probably just an initialize-on-demand model:

    var aClient:Client {
        if(_aClient == nil) {
            _aClient = Client(ClientSession.shared())
        }
        return _aClient!
    }
    
    var _aClient:Client?
    

    Now whenever _aClient is nil, it will be initialized and returned. It can be reinitialized by setting _aClient = nil

    0 讨论(0)
提交回复
热议问题