我最近下载了Xcode 10,并且在使用weak或unowned变量时发现了一个明显的错误.我设法创建了一个简单的示例来展示问题,以便人们可以重新创建它.
class MainClass {
weak var weakClass: SomeClass!
init() {
// WARNING: Instance will be immediately deallocated because property 'weakClass' is 'weak'
self.weakClass = SomeClass()
}
}
class SomeClass {}
Run Code Online (Sandbox Code Playgroud)
正如错误所说,weakClass立即解除分配一次MainClass初始化并始终为零.
我用Xcode 9.3打开了同一个游乐场,我可以确认代码工作正常,没有错误或警告
这是Xcode 10中的错误还是我没有得到什么.如果是,是否有任何变通方法?
编辑:原始示例
class LoginCoordinator {
var viewModel: LoginViewModel?
var viewController: LoginViewController?
init() {
viewModel = LoginViewModel()
viewModel?.coordinator = self
viewController = LoginViewController(viewModel: viewModel!)
}
}
class LoginViewModel: ViewModelDelegate {
weak var coordinator: LoginCoordinator?
}
Run Code Online (Sandbox Code Playgroud)
coordinator 永远都是零 LoginViewModel …