小编Nad*_*ada的帖子

Xcode 10 - 实例将立即解除分配,因为属性"弱"

我最近下载了Xcode 10,并且在使用weakunowned变量时发现了一个明显的错误.我设法创建了一个简单的示例来展示问题,以便人们可以重新创建它.

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 …

xcode swift xcode10

13
推荐指数
2
解决办法
1万
查看次数

标签 统计

swift ×1

xcode ×1

xcode10 ×1