最佳答案
我有一个初始化为:
lazy var aClient:Clinet = {
var _aClient = Clinet(ClinetSession.shared())
_aClient.delegate = self
return _aClient
}()
问题是,在某个时候,我需要重置这个 aClient变量,这样当 ClinetSession.shared()改变时它就可以再次初始化。但是如果我将类设置为可选的 Clinet?,LLVM 会在我试图将它设置为 nil时给我一个错误。如果我只是重置它在代码中的某个地方使用 aClient = Clinet(ClinetSession.shared()),它将以 EXEC_BAD_ACCESS结束。
有没有一种方法可以使用 lazy和被允许重置自己?