为什么以下编译没有错误:
public class MyContainingViewModel {
public var myViewModel: MyViewModel? {
return privateMyViewModel
}
lazy private var privateMyStatusViewModel: MyViewModel? = { [unowned self] in
...
}
但以下结果是错误:
public class MyContainingProtocol {
public var quotedStatusViewModel: T1StatusViewModel? = { [unowned self] in
错误详情:
MyViewModel.swift: 'unowned' may only be applied to class and class-bound protocol
types, not '(MyContainingViewModel) -> () -> MyContainingViewModel'
答案 0 :(得分:0)
主要问题是quotedStatusViewModel
是一个实例变量而self
尚不存在,因此您无法在块中使用它。它在第一个实例中编译好,因为它是lazy
,这意味着self
将在实际调用它时出现。